首先,抱歉!我是初学者...
我在 modbus 上得到以下字节序列:“01 04 08 00 00 00 09 00 00 00 00f8 0c“。该字节序列上粗体的 CRC 是正确的。但是,要检查/创建 CRC,我必须遵循设备规范,其中规定:
错误检查必须使用作为两个 8 位字节实现的 16 位 CRC 来完成。 CRC 作为最后一个字段附加到帧中。首先附加 CRC 的低位字节,然后附加高位字节。因此,CRC 高位字节是帧中要发送的最后一个字节。用于生成 CRC 的多项式值必须为 0xA001。
现在,如何使用 crcmod 检查 CRC?
我的代码是:
import crcmod
crc16 = crcmod.mkCrcFun(0x1A001, rev=True, initCrc=0xFFFF, xorOut=0x0000)
print crc16("0104080000000900000000".decode("hex"))
我尝试了一切,但我无法得到字节序列上正确的“f8 0C”......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)