一文搞定 USART 串口协议(含电源接线、RS485、波形图解)

📅 2026/8/11 5:01:24
一文搞定 USART 串口协议(含电源接线、RS485、波形图解)
一、到底什么是 USART / UARTUSARTUniversal Synchronous/Asynchronous Receiver/Transmitter即“通用同步/异步收发器”。日常使用最多的是它的异步模式也就是大家常说的UART通用异步收发器。简单比喻串口就像两个人用对讲机聊天——我说你听、你说我听双方必须用同样的语速波特率但不需要一根单独的“节拍线”时钟线。它最大的优点线少通常只需 TX、RX、GND 三根线全双工两边可以同时发送和接收几乎所有单片机、模块、PC 都支持二、硬件接口与电平标准1. TTL 电平单片机、模块常用逻辑1高电平3.3V 或 5V逻辑0低电平0V空闲状态为高电平2. RS232 电平传统 PC 串口负逻辑逻辑1 -15V ~ -3V逻辑0 3V ~ 15V不能和 TTL 直连需通过 MAX232 等芯片进行电平转换3. 差分信号RS485 / RS422用于远距离、强抗干扰的工业场景。不同于 TTL 和 RS232 只用一根信号线对地电压RS485 使用两根线A / B传输差模信号。逻辑怎么判断接收端只看A、B 之间的电压差A - B 200mV→ 逻辑1B - A 200mV→ 逻辑0简单记A 比 B 高足够多就是 1B 比 A 高足够多就是 0为什么抗干扰干扰通常同时叠加在 A、B 两根线上共模干扰接收端做减法后干扰会被抵消。电平范围大概记忆发送器输出差模电压典型值 ≥ ±1.5V共模电压范围 -7V ~ 12V。不需要记死数字只要知道它是低压差分与 TTL/RS232 完全不同不能直连。接线特征一般标着A/B-或D/D-有的模块叫485A、485B。常用双绞线距离可达 1200 米。 日常调试单片机串口时主要接触 TTL 和 RS232RS485 多用于工业传感器、PLC 和长距离通信。理解它的差分原理就不会再把 A/B 当成 TX/RX 去接了。看图要点DI/RO485芯片和MCU之间的TTL信号DE/RE引脚必须统一控制收发。A、B两根双绞线总线首尾两端各接120Ω终端电阻抑制信号反射。A‑B电压差决定逻辑电平不是单根线对地。发完数据必须立刻拉低DE/RE否则总线会被主机持续占用从机无法发送。三、电路连接图根据设备供电方式不同接线分为两种情况。核心口诀不变你收我发你发我收必须共地。RS485 通常不需要共地但这里主要讲 TTL/RS232 场景场景一双方独立供电最常用设备 A 和设备 B 都有自己的电源此时严禁连接 VCC 引脚只需接三根线。适用场景两个单片机互相通信、单片机与自带电源的模块通信。场景二由通信端供电如 USB转TTL 给目标板供电当设备 A 没有外部电源需要从设备 B 取电时连接 VCC。必须满足两个条件设备 A 的供电电压与设备 B 的 VCC 输出电压严格一致3.3V 或 5V设备 A 的整板功耗在设备 B 的供电能力范围内USB转TTL模块通常可提供 ≤500mA特别注意如果设备 A 已经通过其他方式供电比如电池、外接电源绝不能再连接 VCC否则两个电源会打架轻则复位重则冒烟。四、UART 数据帧格式异步模式一个完整的字符帧由四部分组成空闲(高) | 起始位 | 数据位(LSB先发) | 校验位(可选) | 停止位 | 空闲(高)...起始位1 位强制拉低逻辑0告诉对方“我要开始发数据了”。数据位5 ~ 9 位可配常用8 位先发送最低位LSB。校验位可选奇校验、偶校验用来简单检错。停止位1 / 1.5 / 2 位固定为高电平逻辑1表示一个帧结束。空闲状态总线没有数据时保持高电平。常用配置简写115200, 8N1→ 波特率 1152008 个数据位无校验None1 个停止位。五、波特率双方约定的“语速”波特率Baud rate每秒钟传输的码元个数单位 bps。常见值9600、19200、38400、115200 等。收发双方的波特率必须一致否则接收方会解出乱码。一般要求误差 2%所以晶振要准内部 RC 振荡器在高波特率时可能翻车。六、波形实例发送字符A(0x41)配置8 个数据位无校验1 个停止位8N1LSB 先发。A的 ASCII 码0x41→ 二进制01000001D0LSB最低位 1D1 0D2 0D3 0D4 0D5 0D6 1D7MSB最高位 0⚠️注意UART 先发送最低位LSB波形上最先输出的数据位是D0对应字节二进制最右侧bit不是最左侧。TTL 电平下的波形示意位标注解读ST 起始位Start固定逻辑0拉低通知接收方准备接收D0 1LSB最先发送D1 0D2 0D3 0D4 0D5 0D6 1D7 0SP 停止位Stop固定逻辑1代表一帧结束空闲 总线无数据持续高电平 实际用示波器或逻辑分析仪抓到的就是这个样子学会看波形调试串口乱码问题效率大幅提升。⚠️初学者高频踩坑字节书写01000001D61因为LSB先发这个1在线上是第7个数据位(D6)不是第6位。不要把波形从左向右8个数据直接当成D7~D0会造成比特顺序颠倒解读出错误字节。七、同步模式一言概之USART 的同步模式需要额外一根SCLK 时钟线由主设备输出时钟信号数据在时钟沿被采样。比异步模式多一根线速度可以做得更高但日常嵌入式应用不多了解即可。八、常见坑与实战建议TTL 与 RS232 乱接单片机 TX/RX 是 TTL 电平电脑原生串口是 RS232中间必须有 MAX3232 之类的电平转换芯片。忘记共地信号靠电压差没有共同的地收方根本不知道你的“高”是几伏。RS485 差分信号例外它不依赖共地但通常还是建议接一根地线提高可靠性乱接 VCC两边都供电时接上 VCC等于把两个电源输出短接大概率烧稳压器或 USB 口。只有明确需要从一端供电时才接 VCC并确认电压。波特率不匹配串口助手乱码先检查双方波特率设置。长线通信超过一两米建议用 RS485 差分传输否则易受干扰。RS485 方向控制很多 485 芯片需要额外引脚控制收发状态如 RE/DE发送前拉高发完拉低否则总线会堵死。这是新手最容易卡住的地方。调试神器花十几块买个 USB 转 TTL 模块 逻辑分析仪观察波形瞬间理解协议。九、小结USART/UART 是异步串行通信的主力军。硬件上核心是TX、RX、GND三根线交叉连接供电场景需按需接VCC。数据帧由起始位(0) 数据位(LSB first) 可选校验 停止位(1) 组成。波特率是双方的“语速”必须一致。会看波形、接对电源、搞清 TTL/RS232/RS485 的区别是嵌入式工程师进阶的必经之路。这篇文章的电路图和波形图都是可以直接拿来画在笔记上的建议收藏。如果你想看某款具体单片机如 STM32、ESP32的串口配置代码评论区告诉我如果觉得有帮助欢迎点赞收藏让更多伙伴看到~