嵌入式测试学习第 24 天:串口通信详细流程、收发数据原理

串口通信详细流程、收发数据原理


一、串口硬件组成

1)开发板串口排针(设备端)

丝印:TX、RX、GND

  • TX:发送
  • RX:接收
  • GND:地(必须共地)

2)USB转TTL模块(CH340,电脑↔设备)

引脚:TX、RX、GND、VCC

  • 指示灯:PWR(红)、TX/RX(绿)
  • 关键:3.3V/5V 拨码,STM32必须用3.3V。

二、串口接线(交叉连接,重中之重)

正确接法(必须交叉)

复制代码
开发板 TX → 模块 RX
开发板 RX → 模块 TX
开发板 GND ↔ 模块 GND

实拍接线图

  • 彩色杜邦线交叉接 TX/RX
  • 黑线统一接 GND
  • ❌ 错:TX→TX、RX→RX,完全不通

三、串口通信完整流程(6步)

1)硬件连接

  • 按上面交叉接法接好
  • USB插入电脑 → 设备管理器出现 COMx
  • 驱动异常:CH340驱动未装 → 找不到串口

2)串口参数配置(两端必须一致)

4个核心参数

  • 波特率:115200(最常用)
  • 数据位:8
  • 停止位:1
  • 校验位:None

SSCOM串口助手界面

操作:选COM口→填参数→打开串口

3)设备初始化(固件动作)

单片机上电后:

  • 配置TX/RX引脚为串口功能
  • 设置波特率、8N1
  • 开启收发中断
  • 硬件就绪

4)数据发送流程(设备→电脑)

  1. 固件把数据写入发送缓冲区
  2. UART把并行字节 → 串行电平脉冲
  3. TX引脚输出电平 → 到模块RX
  4. 模块转USB → 电脑串口助手显示
  5. 现象:模块RX灯闪烁,助手显示文字

5)数据接收流程(电脑→设备)

  1. 串口助手发数据 → 模块TX输出电平
  2. 开发板RX检测到下降沿 → 触发接收中断
  3. 逐位采样 → 还原字节 → 存入接收缓冲区
  4. 固件读取数据并响应(如回显)
  5. 现象:开发板TX灯闪烁

6)通信结束

断电/拔USB/关串口 → 链路断开


四、收发底层原理 + 示波器波形(核心)

UART是异步串行通信无时钟线,靠波特率同步

1)一帧数据结构(8N1)

复制代码
空闲高电平 → 起始位(低) → 8数据位 → 停止位(高)

2)电平定义(3.3V TTL)

  • 空闲:高电平(3.3V)
  • 逻辑1:高电平
  • 逻辑0:低电平

3)真实示波器波形

发送字符 'A'(0x41=01000001)

波形解读:

  1. 空闲位:持续高电平
  2. 起始位:拉低(通知接收方准备)
  3. 数据位(8位,低位先传)
    1 0 0 0 0 0 1 0
  4. 停止位:拉高(本帧结束)

多发波形示例(0x55、0xAA)

4)收发原理一句话

  • 发送:并行 → 串行(TX输出)
  • 接收:串行 → 并行(RX采样)
  • 波特率:决定每一位持续时间(115200≈8.68μs/位)

五、实操演示(完整收发效果)

场景:STM32发"Hello UART"→电脑接收

现象:

  • 串口助手显示:Hello UART
  • 模块TX/RX灯快闪
  • 开发板TX灯同步闪

回显测试(电脑发→设备回发)

  • 助手输入 test123 → 发送
  • 设备收到后原路返回 → 助手显示 test123
  • 闭环验证:收发正常

六、嵌入式测试常见故障

1)完全无数据(空白)

  • 原因:TX/RX接反、GND没接、COM选错、驱动缺失
  • 排查:核对交叉接线 → 检查黑线 → 重装CH340驱动

2)乱码(问号/怪字符)

  • 原因:参数不匹配(波特率/数据位/停止位不一致)、3.3V接5V
  • 排查:两端统一115200/8N1 → 确认模块3.3V档

3)断断续续、丢包

  • 原因:GND接触不良、线太长、靠近电机/继电器干扰
  • 排查:重接GND → 缩短线材 → 远离强干扰

4)能发不能收 / 能收不能发

  • 原因:单侧引脚虚焊、固件驱动配置错
  • 排查:示波器测TX/RX波形 → 判断硬件还是固件问题

七、总结

  1. 接线铁律:TX↔RX、RX↔TX、GND必连
  2. 参数铁律 :波特率/数据位/停止位/校验位完全一致
  3. 波形规律:空闲高 → 起始低 → 8位数据 → 停止高
  4. 排查顺序:接线 → 驱动 → 串口 → 参数 → 波形 → 固件

相关推荐
周周记笔记2 小时前
【元器件专题】MOS管内部结构
嵌入式硬件
周周记笔记2 小时前
【元器件专题】MOS管的设计应用
单片机·嵌入式硬件
一路往蓝-Anbo2 小时前
第九章:OTA 与 Flash 驱动 —— 如何用TDD验证固件升级逻辑的鲁棒性
stm32·单片机·嵌入式硬件·软件工程·tdd·ota·嵌入式测试驱动开发
zlinear数据采集卡2 小时前
电源纹波无处遁形!工业采集卡电源去耦与滤波电路深度解析
c语言·嵌入式硬件·fpga开发·自动化·硬件架构
一路往蓝-Anbo3 小时前
第十章:TDD部署 —— Ceedling 环境的深度集成
stm32·单片机·嵌入式硬件·单元测试·测试驱动开发·tdd
QiLinkOS3 小时前
合肥气链科技有限公司创办与未来技术应用
c语言·数据结构·c++·人工智能·单片机·嵌入式硬件·算法
国科安芯3 小时前
ASM232S电气特性与TIA/EIA-232-F及ITU V.28标准符合性深度分析
单片机·嵌入式硬件·算法·安全·架构
ACP广源盛139246256734 小时前
GSV2231@ACP#三屏扩展旗舰芯片,TRAE SOLO 多任务并行开发核心引擎
运维·网络·人工智能·嵌入式硬件·gpt·电脑·音视频
Rsingstarzengjx4 小时前
【stm32】尚硅谷基础篇笔记
笔记·stm32·嵌入式硬件