登录
首页 串口通信 串口通信
回帖 发帖
正文

主题:求助 modbus CRC16和效验(多项式8005)的计算方法

点击:2870 回复:2

看了网上的算法是这样的:
1、设置CRC寄存器,给其赋值0xffff;
2、将待校验数据的第一个字节(8bit)与16位CRC的低字节进行异或操作,结果存入CRC寄存器;
3、CRC寄存器向右移一位,MSB补零,移出并检查LSB;
4、如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码(8005)相异或,结果依然存入CRC寄存器;
5、重复第3、4步,直到8次移位全部完成。即一个8bit字节处理完毕;
6、重复第2至第5步,即依次处理后面的数据字节,直到全部数据处理完成;
7、最终CRC寄存器里的内容即为CRC值。
这是我按照上面的方法异或计算的但是得出来的和软件算的不一样,请帮助看看!(效验字节为01H)
附件 1.jpg
15-08-05 08:55
复杂的不易懂
15-08-05 09:02
我知道是A001
15-08-05 11:23

工控新闻

更多新闻资讯