STM32之USART串口通信

本文详细解释了USART串口通信的工作原理,涉及数据帧结构、波特率设定、起始位和校验位的作用,以及硬件流控制(RTS/CTS)在发送和接收过程中的控制作用。还介绍了如何通过模式选择进行发送和接收,并概述了发送和接收数据的流程以及SCLK和TE/RE的功能。
摘要由CSDN通过智能技术生成

USART串口通信
1.原理:数据以0或1的方式一帧一帧的传输,有起始位和校验位,同时要约定传输的数据帧字长和波特率即传输的速度,其中起始位代表着一数据帧信息的开始和结束,校验位保证了传输的准确性,字长即每数据帧的信息容量,波特率即传输的速度。
在这里插入图片描述
USART结构体成员
USART_InitStructure.USART_BaudRate = 9600; //波特率
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //硬件流控制,不需要
USART_InitStructure.USART_Mode = USART_Mode_Tx; //模式,选择为发送模式
USART_InitStructure.USART_Parity = USART_Parity_No; //奇偶校验,不需要
USART_InitStructure.USART_StopBits = USART_StopBits_1; //停止位,选择1位
USART_InitStructure.USART_WordLength = USART_WordLength_8b; //字长,选择8位

2.其中硬件流控制会产生两个信号RTS和CTS,这两个信号会分别传给接收端和发送端,做好准备或者拒绝接收或者发送数据。RTS信号是发送端向接收端发送信号,表示发送端已经准备好发送数据,而CTS信号是接收端向发送端发送信号,表示接收端已经准备好接收数据。这两个信号在不同的方向上进行控制,所以需要在发送端和接收端各有一个。
在一般来说,在发送端,当发送缓冲区满时,发送端就会发送RTS信号让接收端不能再接受数据,在接收端接收完数据后,就发送CTS信号告诉发送端可以继续发送数据。
3. 通过模式选择,可配置USART是发送还是接收。
4. 从这个框图可以看出,写入数据时数据先进入发送数据寄存器,此时要判断一下发送移位寄存器是不是处于忙碌状态,如果不忙,数据就会通过发送移位寄存器进入编解码模块到达TX引脚发送。控制发送移位寄存器的就是发送器控制单元。同理,接收数据也有相应的接受数据寄存器和接受控制器,上面说的硬件流控制也是通过发送器控制和接收器控制来控制发送和接收的过程,同时接受完数据还可以产生中断。右边的SCLK是伴随发送数据而产生的,相当于反馈,同时用此时钟可以兼容别的通信协议。下方的TE,和RE控制波特率是给发送还是接受用,即控制USART的模式。唤醒单元的存在是为了多设备通信模式而设计的。

其他注意事项,后续更新再添加。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值