STM32串口通信的基本概念

STM32的串口通信

通信方式

一、同步通信、异步通信
  • 同步通信
    通信中双方使用频率一致的时钟
  • 异步通信
    通信中的接收方并不知道数据什么时候会到达,收发双方可以有各自自己的时钟
  • 异同点:
    1.同步通信效率高;异步通信效率较低;
    2.同步通信较复杂,双方时钟的允许误差较小;
    3.异步通信简单,双方时钟可允许一定误差。
二、并行通信、串行通信
  • 串行通信
    各位数据被逐位按顺序传送,最少只需一根传输线即可完成,成本低但送速度慢。
  • 并行通信
    并行通讯中,基本原理与串行通讯没有区别。只不过使用了成倍的信号线路,从而一次可以传送更多bit的信号。
  • 特点:
  1. 串行通信用一根线只能一位一位的发送数据,所以发送速度慢,但是占用资源少,可以远距离传输。
  2. 并行通信使用了成倍的信号线路,可以在同一时刻发送多位数据,发送速度快,但是占用资源多,只能近距离传输。
三、单工,半双工,全双工
  • 单工
    只能单向的收数据或者单向的发数据
  • 半双工
    可以收数据也可以发数据,但是同时只能进行一种
  • 全双工
    可以同时收发数据

常见的通信方式总结

通信标准 引脚说明 通信方式 通信方向
UART TXD:发送端 RXD:接收端 异步通信 全双工
单总线 DQ:发送/接收端 异步通信 半双工
SPI SCK:同步时钟 MISO:主机输入,从机输出 MOSI:主机输出,从机输入 同步通信 全双工
IIC SCL:同步时钟 SDA:数据输入/输出端 同步通信 半双工

串口通信协议

相当于我们人与人的沟通一样,只有语言和语速都统一,我们才可以交流,机器也一样

语言

图片来源STM32F10xxx参考手册图片来源STM32F10xxx参考手册

  • 1)起始位
    当没有数据发送时,数据线处于逻辑“1”状态;当发出一个逻辑“0”信号,表示开始传输字符。
  • 2)数据位
    紧接着起始位之后。数据位可以是5~8个,在STM32中可选的数据位是8、9。通常采用ASCII码。从最低位开始传送,靠时钟定位。
  • 3)奇偶校验位
    数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。
  • 4)停止位
    它是一个字符数据的结束标志。可以是1位、2位的高电平。
语速
  • 1)波特率
    表示每秒钟传送的二进制位数,是衡量数据传送速率的指标
      常用的波特率有:9600、115200……
      时间间隔计算:1秒除以波特率得出的时间,例如,波特率为9600的时间间隔为1s / 9600(波特率) = 104us。

USART(通用同步异步收发器)

USART相当于UART的升级版,USART支持同步模式,因此USART 需要同步始终信号USART_CK(如STM32 单片机),通常情况同步信号很少使用,因此一般的单片机UART和USART使用方式是一样的,都使用异步模式。

引脚

TX:发送数据输出引脚。

RX:接收数据输入引脚