UART通讯协议,停止位、校验位

最详细的UART通讯协议分析在这里

UART是 "通用异步收发器" ( Universal Asynchronous Receiver/Transmitter ) 的缩写,通常简称为UART。是一种异步串行通信接口,用于将数据通过串列通信进行传输。

  • 波特率(Baud Rate):单位时间内传输的二进制位数,常见值为 9600、115200、38400。例如 9600bps 表示每秒传输 9600 位(含起始位、数据位、校验位、停止位),实际有效数据率需剔除控制位。
  • 数据位(Data Bits):每帧数据中包含的有效数据位数,通常为 8 位(对应一个字节),也有 7 位(适配 ASCII 码)。
  • 停止位(Stop Bits):每帧数据结束后的标识位,可设为 1 位、1.5 位或 2 位,用于接收方判断一帧数据是否结束。
  • 校验位(Parity Bit):用于校验数据传输是否出错,分为奇校验(数据位 + 校验位中 1 的个数为奇数)、偶校验(1 的个数为偶数)、无校验(最常用,依赖上层协议容错)。
  • 流控(Flow Control):可选参数,用于防止数据溢出(如 RTS/CTS 硬件流控、XON/XOFF 软件流控),多数简单场景(如传感器数据传输)无需启用。

发送方按参数封装数据帧(起始位 + 数据位 + 校验位 + 停止位),接收方按相同参数解析帧结构,若参数不匹配,接收数据会出现乱码(如波特率不匹配时常见"####"或乱码字符)。​

串口通信以"帧"为单位传输数据,标准帧结构如下(以 8 位数据位、1 位停止位、无校验为例):​

起始位(1 位):低电平(逻辑 0),表示一帧数据开始,打破之前的高电平空闲状态。​

数据位(8 位):从最低位(LSB)到最高位(MSB)传输,例如发送字节 0x5A(二进制 01011010),实际传输顺序为 0→1→0→1→1→0→1→0。​

停止位(1 位):高电平(逻辑 1),表示一帧数据结束,长度可配置为 1/1.5/2 位,确保接收方有足够时间准备接收下一帧。​

示例:发送字符"A"(ASCII 码 0x41,二进制 01000001),完整数据帧为:​

起始位(0)→ 数据位(1→0→0→0→0→0→1→0)→ 停止位(1)​

接收方通过检测"低电平起始位"触发接收,再按波特率同步采集后续 bits,最终重组为完整字节。​

停止位1,无校验的波形:

停止位2,无校验连续通信的波形:

相关推荐
无垠的广袤11 天前
【FPB-RA6E2 开发板】Zephyr 串口打印 DHT11 温湿度
c++·单片机·串口通信·开发板·瑞萨·传感器·dht11
Rorsion18 天前
第七章:串行总线与接口技术
单片机·嵌入式硬件·串口通信·通信协议·备考ing
youcans_20 天前
【动手学STM32G4】(4)STM32G431之ADC与DAC
stm32·单片机·嵌入式硬件·数据采集·串口通信
喜喜安22 天前
串口、IIC、SPI通信协议
uart·iic·spi
一个平凡而乐于分享的小比特1 个月前
PySerial 串口通信教程
串口通信·pyserial
youcans_1 个月前
【动手学STM32G4】(2)USB 虚拟串口通信
stm32·单片机·嵌入式硬件·串口通信·通信协议
一个平凡而乐于分享的小比特1 个月前
I2C、SPI、CAN、串口通信详细对比
can·uart·spi·i2c
2401_853448231 个月前
QT控制----单片机控制外设项目
stm32·qt·uart
一个平凡而乐于分享的小比特1 个月前
TTL、RS232、RS485串口通信协议详解与对比
串口通信·ttl·rs232·rs485
一个平凡而乐于分享的小比特1 个月前
串口通信全面详解
串口通信·异步通信·流控制