理解字节、分帧与串口参数
区分显示格式与真实字节,按协议确定帧边界,并用一致的串口参数检查设备通信。
本页目录
先区分文本和字节
Text 把文字编码后发送;HEX 按十六进制字节输入。下面两种输入看起来相似,实际发送内容并不相同:
| 输入方式 | 输入内容 | 含义 |
|---|---|---|
| Text | 48 65 |
字符 4、8、空格、6、5 |
| HEX | 48 65 |
两个字节,对应 ASCII 的 H、e |
JSON 是载荷组织方式,不是底层通信协议。设备接收的是实际编码后的字节,是否需要换行、长度或校验字段,要由设备协议决定。
一次接收不一定是一帧
TCP 是连续字节流。一次发送可能分多次被读取,多次发送也可能合并读取。串口收到的字节也需要按协议识别边界。
常见分帧方式:
- 原始接收:先观察实际到达的字节,适合初步排查。
- 固定长度:每累计约定长度构成一帧,前提是协议具有稳定长度。
- 分隔符:例如
0D 0A,需要设备实际发出该字节序列。
分帧用于识别消息边界,不会自动补齐业务协议缺少的字段、校验和或应答逻辑。
串口参数要逐项一致
连接前,确认串口设备名称与设备文档一致,再检查波特率、数据位、校验位、停止位与流控。常见的 115200 / 8 / 无 / 1 只是示例,不能替代设备要求。
端口打开失败可能是端口被其他程序占用、设备已经断开,或操作系统权限不足。能打开但乱码,优先检查参数和编码。完全没有数据,则核对设备是否主动上报、接线和触发条件。
定时发送前先成功一次
先手动发送一条可验证的消息,确认设备能正确应答后,再配置定时发送的间隔和次数。过短间隔可能让设备来不及处理,也会增加观察难度。
测试结束应停止定时任务,再关闭端点。需要复现时记录载荷、发送方式、是否追加 CRLF、分帧方式与间隔。
从最简单的链路排查
如果无法判断是设备、线路还是应用配置导致问题,先完成本机 TCP 回环。它能验证工具的基本收发操作,但不能代替物理串口、设备协议或现场网络验证。