Embedded 如何正确计算该crc?

Embedded 如何正确计算该crc?,embedded,spi,crc,Embedded,Spi,Crc,我在寻求帮助。我通过SPI MAX22190使用的芯片指定: CRC多项式:x5+x4+x2+x0 CRC是使用填充有5位初始字00111的前19个数据位计算的 然后将5位CRC结果附加到原始数据位以创建24位SPI数据帧 我使用多个工具计算的CRC结果为:0x18 然而,芯片在这一点上显示了CRC错误。它需要:0x0F 有人能告诉我我的计算哪里出错了吗 我的输入数据19个数据位是: 19位数据: 0x04 0x00 0x00 0000 0100 0000 000 24位,用初始值填充: 0x3

我在寻求帮助。我通过SPI MAX22190使用的芯片指定:

CRC多项式:x5+x4+x2+x0

CRC是使用填充有5位初始字00111的前19个数据位计算的

然后将5位CRC结果附加到原始数据位以创建24位SPI数据帧

我使用多个工具计算的CRC结果为:0x18

然而,芯片在这一点上显示了CRC错误。它需要:0x0F

有人能告诉我我的计算哪里出错了吗

我的输入数据19个数据位是:

19位数据:

0x04 0x00 0x00

0000 0100 0000 000

24位,用初始值填充:

0x38 0x20 0x00

0011 1000 0010 0000 0000

=>我发送的数据:0x38 0x20 0x18


=>芯片预期的数据:0x38 0x20 0x0F

解释CRC算法。
我认为您的错误来自00111填充,必须在右侧填充,而不是在左侧填充。

事实证明,制造商在这里详细描述了其算法:似乎您关于右填充的假设init值是正确的。