HEX 与 ASCII 串口调试模式选择:何时用十六进制收发

发送/接收选 **ASCII** 还是 **HEX**,完全取决于设备协议语义,不是「高级/低级」之分。

### ASCII(文本)模式

适合人读内容:

  • `Serial.println` 日志、`OK`/`ERROR`
  • GPS NMEA:`$GPRMC,...`
  • ESP AT:`AT+GMR\r\n`
  • 行协议命令

助手把字节按当前字符集显示成字符;发送时也可配合 `\r` `\n` 转义。

### HEX(十六进制)模式

适合二进制紧凑帧:

  • **Modbus RTU**、自定义传感器帧、带 CRC 的包
  • 含 `0x00` 等非打印字节的协议

此时 `01 03 00 00` 是四个指令字节,不是字符 "0" "1"。必须用 HEX 编辑/监视,才能核对 CRC 与字段边界。

### 怎么选(口诀)

  • 用记事本能读懂 → ASCII
  • 字段是寄存器地址/功能码/校验 → HEX
  • 两者混合:日志 ASCII + 偶发二进制 → 接收开 HEX 对照,或分段调试

### 常见误区

  1. 把 RTU 帧当文本发送,多了空格或 `\r\n`,CRC 全错。
  2. ASCII 下看「乱码」其实是二进制协议,应切 HEX。
  3. 中文日志乱:先分清编码(GBK/UTF-8),与 HEX/ASCII 开关是两层问题。

在 Web Serial Pro 中可一键切换显示与发送格式;联调时建议 **接收长期开 HEX 旁路**,避免「看起来像字、其实是帧」的误判。