目录
前言
之前一直用hal库直接用的串口通信,所以以前也是学过的,但是当时才大一,看了原理也没有太理解,只是会用了,最近又重新复习了一遍,搞清楚原理,学习后,对学到的东西的一些总结。
USART介绍
通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA方式,可以实现高速数据通信。
主要特性

通信模式
任何USART通信,需要用到2个对外连接引脚,RxD(输入引脚,用于串行数据接收)、TxD(输出引脚,用于串行数据发送)
SCLK:发送器时钟输出(同步时才用到)
GND:共地
通信过程

通信协议

理解USART框图
框图是在参考手册里面的,需要的同学可以去看一下。
输入模式

输入模式的路线如上图所示
1:Rx接收到数据先进入码解码模块,
2:然后沿着线1,进入移位寄存器中,然后再发给接收数据寄存器(RDR),读操作就可以读RDR的值了,
3:目光回到接收移位寄存器,还有一条线连过去,就是4这条线,这条线连着 接收器控制 这个模块,这个模块就是控制这个接收移位寄存器的
4:再看5这条线,是接收器的时钟,连着时钟的发生器,我们要改变时钟的话,就是要改变这里
5:看回 接收器控制 模块,还有很多个寄存器箭头指向它,其实表示这些寄存器控制它,而我们到时要操作的也是这些寄存器,比如CR1 那些。
接收端就是

最低0.47元/天 解锁文章

958

被折叠的 条评论
为什么被折叠?



