uart详解

  • Post author:
  • Post category:其他
   uart

1,概念:uart是一种传输速度范围广的,全双工,异步的通信总线。

传输速度范围广:波特率从110到几M不等,stm32系列的uart一般波特率最高可达2-3M,常用波特率有9600,115200等。

全双工:可以同时接收和发送数据。

异步:接收端和发送端无须在同一时刻接收和发送,所以不需要接时钟线,只需要保证通信双方的波特率一致就行。

2,接口

它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少2根线。

TX – 主设备数据输出,从设备数据输入;

RX – 主设备数据输入,从设备数据输出;

3,uart的通信协议

uart一般包括1位的起始位+若干位的数据位+1位的奇偶校验位+1位停止位。

起始位为低电平;

数据位可选5,6,7,8位,一般选择8位;

奇偶校验位可以有,也可以没有,但是发送端和接收端要配置一致;

停止位为高电平,可以选择1位,1.5位或者2位,一般选择1位。

4,uart初始化配置

①,uart的GPIO口配置

②,配置uart的波特率

③,配置uart的数据格式,数据位的位数,是否加奇偶校验位,停止位的位数

④,使能uart的接收和发送

5,uart读写数据流程

发送:

①,等待uart-buffer为空

②,把需要发送的数据放入uart-buffer

③,等待发送完一个数据

接收:

uart接收数据分为循环接收和中断接收,为节省CPU资源,一般采用中断接收

①,产生中断接收标志

②,把uart-buffer的数据移入内存

③,清楚中断标志位

6,uart配置心得

uart有内部回环模式,在调试时,可先把uart的tx口和rx口短接起来,观察是否可以正常接收发送数据,正常后再与其他uart外设传输数据。


版权声明:本文为qzl1221原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。