「STM32入门」USART串口通信

通信

通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统

通信协议:制定通信的规则,通信双方按照协议规则进行数据收发

STM32常见的通信协议 

本文将介绍USART 

概念解释

  1. TX、RX分别是Transmit和Receive的缩写,代表发送、接受数据
  2. 全双工的含义是发送线路和接受线路互不影响,可以同时进行
  3. 异步指的是没有时钟线的通信,需要通信双方制定帧头帧尾,通信频率等参数
  4. 单端电平指的是通信双方的电压都是以GND为参考电压的,因此这两个设备需要共地
  5. 点对点指的是这个通信只支持两个设备间进行通信

硬件电路连接抽象图 

 

串口参数及时序 

⚠️  几个需要注意的点

  1. 第二张图D7的后一位是奇偶校验位
  2. 波特率决定了串口通信的速度,举个例子,如果波特率为1000bps,那么一秒就会传输1000个数据,每传输一个数据耗时1毫秒。
  3. 高电平作为空闲位,因此每当传输开始,发送方要先传送一个起始位,也就是低电平,告诉接受方我即将要传输数据了。传输结束后,要传输一个停止位恢复高电平。总结来说,就是TX引脚定时翻转电平,RX引脚定时读取电平,即可完成数据的传输。
  4. 数据位是低位先行,举个例子,比方说要传输一个0x0F的数据,将它转化为二进制就是00001111,那么传输的顺序应该是 1 1 1 1 0 0 0 0。

 USART外设简介

 USART基本结构图

当数据由数据寄存器TDR转到移位寄存器时,会置一个标志位TXE,我们判断这个标志位,就可以知道是不是可以开始写入下一个数据了。

接收部分也是类似的,在接受控制器的控制下,一位一位地移入接收移位寄存器,移完一帧数据后,数据就会统一转运到接收数据寄存器,并置一个RXNE的标志位,我们检查这个标志位,就可以知道是不是接收到数据了。同时这个标志位也可以申请中断,这样就可以在接收到数据时,直接进入中断函数,然后快速地读取和保存数据。

猜你喜欢

转载自blog.csdn.net/m0_54689021/article/details/130454968