UART 接口用途详解(串口通信原理与应用)

工程师调试一块新板子,接的第一个外设几乎总是 UART 串口——日志从这里打出来,命令从这里敲进去。UART(通用异步收发器)是设备之间”一发一收两根线就能对话”的串行通信方式,凭协议简单、成本低、调试直观这三个特点,从单片机到工业设备活跃了几十年,至今仍是嵌入式领域的普通话。

UART 接口的核心概念与连接方式

两根线的对话规则

UART 是异步通信:没有时钟线,双方靠事先约定的速度各自掐表收发。硬件接口上核心只有三根线——TX(发送)、RX(接收)、GND(地线),连接时交叉对接:本方的 TX 接对方 RX,本方 RX 接对方 TX,GND 共地。这是新手的头号翻车点:把两个 TX 接在一起,什么也收不到。

数据帧的结构约定俗称:空闲时线路保持高电平,起始位拉低”打招呼”,随后 5-9 位数据位(几乎总是 8 位)、可选校验位、停止位拉高收尾。双方掐表的速度就是波特率——每秒传输的码元数,常见档位 9600、115200 等。两端波特率偏差超过约 2-3%,数据就会错位成乱码,这是第二常见翻车点。

参数常见取值作用
波特率9600 / 115200双方共同的”语速”
数据位8 位每帧有效数据长度
校验位无 / 奇 / 偶简单的传输错误检测
停止位1 / 2 位帧结束标志

配置串口就是把这四项对齐,一个都不能错——参数不匹配的表现很固定:能收到数据但全是乱码。

它在工程里承担的三类工作

第一类是调试输出。嵌入式设备没有屏幕,程序运行状态、报错信息全靠串口日志输出到电脑终端,这是嵌入式开发的基本工作流,串口日志的价值不亚于服务端日志。

第二类是模块互联。蓝牙模块、GPS 模块、4G 模组、指纹识别模块,绝大多数低速外设模组对主控的接口就是 UART:主控发 AT 指令,模组回响应。这类”主控+模组”的架构里,串口是两条线之间的翻译通道。

第三类是工业与设备运维。工控设备的编程口、网络设备的 Console 口,本质都是 UART(Console 口只是电平标准不同,需要转换线)。设备网络瘫了、SSH 进不去时,串口是救命的备用通道——这也是为什么机房运维包里总有一根串口线。

用 Python 与串口设备对话,pyserial 十行以内跑通:

import serial

ser = serial.Serial("/dev/ttyUSB0", 115200, timeout=1)  # 端口+波特率
ser.write(b"AT\r\n")                # 发送一条 AT 指令
print(ser.readline())               # 读取模组回显
ser.close()

三个参数——端口名、波特率、超时——覆盖了绝大多数调试场景,超时参数尤其重要,没有它读数据时程序可能永久阻塞。

UART 与其他串行接口怎么选

嵌入式常用的几种接口各有领地,选型对比一眼分明:

接口线数主从结构典型用途
UART2-3 根点对点平等调试、模组通信
I2C2 根一主多从低速传感器(温湿度、陀螺仪)
SPI4 根一主多从高速外设(屏幕、Flash)

经验法则:点对点、中低速、要打日志——UART;挂多个低速传感器——I2C;要速度(驱动屏幕、读写存储)——SPI。三者不互斥,一块主控板往往三种接口并存,按外设各取所需。

串口不通的排查顺序

设备间串口不通时,按固定顺序过一遍,多数问题当场解决:

  1. 查接线:TX/RX 是否交叉对接、GND 是否共地,这是出错率两高的一步;
  2. 查参数:两端的波特率、数据位、校验位、停止位逐项对齐;
  3. 查电平:3.3V 与 5V 设备直连需要电平转换,别硬连;
  4. 自环测试:单板 TX 接自己的 RX,能自发自收说明本板串口正常;
  5. 换工具:用 USB 转串口工具接电脑做第三方验证,把问题切分到具体一侧。

自环测试是这条流程里极好用的一招——它把”两边都可能有问题”的僵局,切成”本板正常,问题在对面”的确定结论。

工程实践里的三个细节

一是电平匹配:3.3V 与 5V 的串口直连可能损坏引脚,跨电平通信用电平转换芯片。二是长距离与抗干扰:UART 的裸 TTL 电平走不了远线,几米以上的通信要换 RS-485 这类差分标准——协议逻辑相同,物理层加强。三是调试技巧:乱码先查波特率和共地,收不到数据先查 TX/RX 是否交叉,两板互发先各自回环自测。这三条排查口诀,能解决串口问题的多数日常案例。

常见问题(FAQ)

Q1:串口收到乱码怎么排查?

按顺序核对波特率、数据位与校验位配置,再确认双方是否共地,多数问题出在前者。

Q2:UART 能不能一主带多个从设备?

标准 UART 是点对点的;多设备场景用 RS-485 总线加地址协议扩展。

Q3:为什么设备间通信要共地?

电平是相对参考点的电压,没有共地参考,收发双方对”高电平”的理解不一致。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 qiqicto@qq.com 举报,一经查实,本站将立刻删除。
赞 (0)
小码农的头像小码农认证作者

相关推荐

返回顶部