当前位置: 代码迷 >> 综合 >> STM32串口通信:USART
  详细解决方案

STM32串口通信:USART

热度:13   发布时间:2023-12-21 15:31:48.0

一、通信接口背景知识

设备之间通信的方式

1、一般情况下,设备之间的通信方式可以分成并行通信和串行通信两种。它们的区别是:

串行通信:数据按位顺序传输。优点:占用引脚资源少,缺点:速度相对较慢。

并行通信:数据各个位同时传输。优点:速度快,缺点:占用引脚资源多。

串口通信一般是以帧格式传输数据,即一帧一帧传输,每帧包含有起始信号、数据信息、停止信息,可能还有校验信息。

 

2、串行通信的分类
(1)按照数据传送方向,分为:

单工:数据传输只支持数据在一个方向上传输;
半双工:允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;它不需要独立的接收端和发送端,两者可以合并一起使用一个端口。
全双工:允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端。

(2)按照通信方式,分为:

同步通信:带时钟同步信号传输。比如:SPI,IIC通信接口。
异步通信:不带时钟同步信号。比如:UART(通用异步收发器),单总线。
在同步通讯中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。

在异步通讯中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些用于同步的信号位,或者将主题数据进行打包,以数据帧的格式传输数据。通讯中还需要双方规约好数据的传输速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。

在同步通讯中,数据信号所传输的内容绝大部分是有效数据,而异步通讯中会则会包含数据帧的各种标识符,所以同步通讯效率高,但是同步通讯双方的时钟允许误差小,稍稍时钟出错就可能导致数据错乱,异步通讯双方的时钟允许误差较大。

 

常见的串口通信接口:

 

二、通用同步/异步收发器(USART)

1、通用同步异步