最快路径
当你需要为 RTU 请求或响应得到可复现的 CRC 值时,直接使用 Modbus CRC 计算器。 只输入校验值之前的字节,然后按低 CRC 字节、高 CRC 字节的顺序追加。
应该输入什么
ASCII 模式会按你输入的字符编码。标准测试向量可以直接输入 123456789。
十六进制模式适合粘贴串口分析仪里的帧字节,例如 01 03 00 00 00 0A。重新计算已有帧时不要把最后两个 CRC 字节带进去。
参数
| 初始值 | 0xFFFF |
|---|---|
| 多项式 | 0x8005 的反射形式 0xA001 |
| 线上字节顺序 | 先低 CRC 字节,再高 CRC 字节 |
| 已知向量 | ASCII 123456789 得到 0x4B37 |
手算流程
- 把 CRC 寄存器初始化为
0xFFFF。 - 把下一个数据字节 XOR 到寄存器低字节。
- 按最低位优先处理 8 bit,每次右移。
- 移出的 bit 为 1 时,与
0xA001做 XOR。 - 最后一个数据字节处理完后,先追加低字节,再追加高字节。
调试清单
- 重新计算已有帧时,不要包含尾部两个 CRC 字节。
- 确认串口工具显示的是数值 CRC,还是线上的传输字节顺序。
- 如果另一个工具显示
0x374B,先检查它是否按线上字节顺序展示。 - 确认十六进制字符串是完整字节,没有混入时间戳或方向标记。
下一步
打开 Modbus CRC 计算器,在 ASCII 和十六进制输入之间切换,把计算出的完整帧与设备真实发送的字节对照。