0x1ff5
实际上是80000003
的CRC-CCITT(Kermit)。(它显然以little-endian顺序存储在流中。)
您找到的PHP代码是false“crc-ccitt”,您可以在RevEng目录中找到它。
真正的CRC-CCITT(Kermit)参数在目录中。位是反向的,因此使用多项式反向,0x8408
,并且向下而不是向上移动位。初始寄存器内容为零,并且没有最终的异或。
我能够重新创建包罚款,除了2字节“5C B1”。根据文档,5C b1字节是数据包上的crc-ccit16,在crc-16时隙中有0。CRC16函数返回5c字节,但不返回b1字节。 我使用下面的代码来计算CRC:
FF-源地址 53-数据 70-数据
我试图编写一个基于表的CRC例程,用于接收模式S上行链路询问器消息。在下行链路侧,CRC只是基于多项式p=0x1fff409的24位CRC。到目前为止,一切都很好--我编写了一个基于表的实现,它遵循了通常的每次字节约定,并且运行良好。 然而,在上行方面,事情变得很奇怪。协议规范说,计算目标上行链路地址是通过查找: 上面所述的速度当然比软件中的糖蜜慢,我真的希望能够构造一个查找表,允许对接收的地址进
这是代码 更新的答案
. 我使用下面的代码,但是CalcCRC16()的结果是0xacee。下面缺少什么脚本?
null 编辑:我应该如何单独控制每一个参数?我想了解函数实际上是如何工作的,以及所有参数是如何实现的。