ID: SERIAL-BASIC-09
串口通信核心基础 (Core Serial Basics)
HEX 与 ASCII 串口调试模式选择:何时用十六进制收发
打开在线串口调试工具
需 Chrome / Edge 桌面浏览器 · 串口数据仅在本地处理
发送/接收选 ASCII 还是 HEX,完全取决于设备协议语义,不是「高级/低级」之分。选错模式会出现「明明发了、设备没反应」或「接收全是看不懂的字符」——多数不是线坏了。
先说结论
| 协议类型 | 推荐模式 | 例子 |
|----------|----------|------|
| 人读文本 | ASCII | OK、Serial.println、AT、NMEA |
| 二进制帧 | HEX | Modbus RTU、CRC 包、含 0x00 的帧 |
| 混合 | 接收开 HEX 对照 | 文本日志 + 偶发二进制 |
口诀:记事本能读懂 → ASCII;字段是寄存器/功能码/校验 → HEX。
ASCII(文本)模式
适合:
- MCU 日志、OK / ERROR
- GPS NMEA:$GPRMC,...
- ESP AT:AT+GMR + 回车换行
- 行协议命令
助手按字符显示;发送可配合 \r \n 转义(见《转义字符》文)。注意编码:中文日志乱码是 UTF-8/GBK 问题,与 HEX/ASCII 开关是两层。
HEX(十六进制)模式
适合:
- Modbus RTU、自定义传感器帧、带 CRC 的包
- 含 0x00 等非打印字节
此时输入 01 03 00 00 表示四个指令字节,不是字符「0」「1」。必须用 HEX 才能核对 CRC 与字段边界。
本站怎么用
1. 打开 https://www.serialpro.top/ ,连接 COM。
2. 文本协议:发送区 ASCII,需要帧尾时开转义发 CMD\r\n。
3. RTU/二进制:切 HEX 发送,空格分隔字节,不要多发文本换行(除非协议规定)。
4. 接收区建议联调阶段 长期开 HEX 旁路,避免把二进制当成「乱码字」。
5. 核对 CRC:复制 HEX 日志,对照《Modbus CRC16》或设备手册。
常见误区
1. 把 RTU 当文本发送,多了空格含义被误解或附带 \r\n,CRC 全错。
2. ASCII 下「乱码」其实是二进制协议 → 切 HEX。
3. 中文日志乱:先查编码,再查波特率。
4. HEX 里把 0A 当「换行编辑」误发上总线(视工具是否忽略空白)。
快速决策树 1. 手册有功能码/寄存器表?→ HEX。 2. 手册是 AT 或行命令?→ ASCII + 正确帧尾。 3. 不确定?→ 接收开 HEX 看真实字节,再反推。
相关文档
- 转义与 \r\n:/help/serial-basic-08
- Modbus 帧:/help/industrial-01
- CRC16:/help/industrial-02
- 乱码排查:/help/fault-01
在 Web Serial Pro 中可一键切换显示与发送格式;联调时 接收开 HEX 能消灭一大类误判。
打开在线串口调试工具
在本页完成排查后,用网页串口直接验证收发