首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python计算CRC16

用Python计算CRC16
EN

Stack Overflow用户
提问于 2021-09-28 23:23:32
回答 2查看 2.6K关注 0票数 2

首先,对不起!我是个初学者..。

我在modbus上得到了以下字节序列:"01 04 08 00 00 00 09 00 00 00 f8 0c“。这个字节序列上粗体上的CRC是正确的。但是,要检查/创建CRC,我必须遵循设备especs,其中声明:

错误检查必须使用以两个8位字节实现的16位CRC来完成。CRC作为最后一个字段附加到帧中。首先追加CRC的低阶字节,然后是高阶字节。因此,CRC高阶字节是在帧中发送的最后一个字节。用于生成CRC的多项式值必须为0xA001。

现在,如何使用crcmod检查CRC?我的代码是:

代码语言:javascript
复制
import crcmod
crc16 = crcmod.mkCrcFun(0x1A001, rev=True, initCrc=0xFFFF, xorOut=0x0000)
print crc16("0104080000000900000000".decode("hex"))

我什么都试过了,但是我找不到字节序列上正确的"f8 0C“.

EN

回答 2

Stack Overflow用户

发布于 2021-09-29 06:37:42

使用0x18005而不是0x1A001

票数 1
EN

Stack Overflow用户

发布于 2022-11-20 04:00:33

Modbus快捷方式,如果不深入CRC详细信息

代码语言:javascript
复制
from pymodbus.utilities import computeCRC
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69369408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档