| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> S5PV210学习笔记——(4) 串口 -> 正文阅读 |
|
[嵌入式]S5PV210学习笔记——(4) 串口 |
UART:异步、串行、查分;USART:同步 电平信号: ?????? RS232:-3~-15v为1,+3~+15为0;抗干扰距离远 ?????? TTL:+5v为1,0v为0,距离近不抗干扰,多用于电路内部或15m以内 串口中有个Transmit Buffer 寄存器,这个一会儿和FIFO一起说;还有个波特率发生器,它由时钟源为基础而产生。流控是有一根流控线,在发送机、接收机二者之间相连,每完成一个位的发送或者接收,就控制流控线改变,从而告知对方接受完成可以接受下一位数据了,一般在二者的速率不一样时使用。 串口的其他功能模式: ① FIFO(FIRST IN FIRST OUT)模式,在上图中,非FIFO模式下每次只能传一个字节的数据,传完之后需要重新想buffer里面写新的一个字节;而开启FIFO后,可以一次性向buffer发送多个字节,再传输,就不用多次只传一个字节时的跳转开销了 ② DMA:direct memory access,直接内存访问,在交换数据时,由硬件自己完成,避免了占用CPU,对比FIFO,FIFO是轻量级的,而DMA可以自己指定一段内存,直接从内存向外发,只要内存大小允许,可以指定很大的缓存空间。在stm32的学习过程里面,做过相关的实验。 ③ IrDA模式(Infra-Red红外线),以有无红外信号来判断0和1 各个串口通道对应的功能如下图, 5.4.1?常用寄存器5.4.1.1 串口线控制寄存器 ?????? 选择串口模式(红外模式还是普通模式,一般是用普通模式);奇偶校验位;停止位的位数;发送的数据长度 5.4.1.2 串口控制寄存器 串口中控制时钟选择、收发中断方式、FIFO模式下的超时中断、异常状态的中断使能等 ? 5.4.1.3 FIFO控制寄存器 ?????? 控制FIFO的缓存大小、使能等 5.4.1.4 UART modem control register ?????? 看起来是控制流控相关的东西 ? 5.4.1.5 收发缓存寄存器 里面用来放将要发送的数据,或者放收到的数据 5.4.1.6 其他寄存器 ?????? 除了上面的几个常用寄存器,还有下表中的一些状态寄存器,中断屏蔽寄存器,波特率设置寄存器等 5.4.2 stdio移植?????? Stdio:standard input output标准输入输出,在PC中标准输入是键盘,标准输出是屏幕。其中printf和scanf可以和底层的输入输出函数绑定,然后和stdio绑定,就可以用printf输出到stdio指定的输出口 ?????? 在串口的使用时,我们的输入输出都是串口 ?????? 在stm32的printf移植时,我们只知道用putc里面的输出端改成串口,而不知道printf的整个实现过程 ?????? Printf中,主要用的两个关键函数 ① vsprintf():这个函数用来格式化打印信息,得到纯字符串格式的打印信息,用来一会儿的输出 ② putc():这个就是真正的输出函数,控制标准输出硬件,将信息发送出去 ?????? Stdio库函数的应用,库函数里有个makefile作为子makefile,他的用法可以参照子makefile 这个是printf函数,const char* fmt是字符串,任何是可变参数 ? ? 5.4.3?程序? ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:45:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |