ST意法半导体
直播中

李萍

7年用户 1350经验值
私信 关注
[问答]

如何实现用C实现CRC-16校验?

如何在 C 中计算 SPI CRC-16?我有一个 STM32F429 向我发送 SPI 数据。
这些是 SPI 设置:

如何实现用C实现的CRC-16校验(不使用 STM32)?
它是 16 位数据,LSB 在前。多项式 X1+X3








回帖(1)

魏贝贝

2022-12-9 11:52:08
我用多项式 5 尝试了你的例子,我在我的逻辑分析仪上得到了 CRC = 0x9D68,在 CRC 计算器页面上得到了同样的结果:
但是当我更改为多项式10时,它不起作用。我在逻辑分析仪上得到 CRC = 0x1692,但在 CRC 页面上得到 0x3ADA:
我也用另一个多项式 0xed2f 尝试过,那个也有效。在逻辑分析仪和 CRC 页面上得到 CRC = 0xD087:
我的理论是,当多项式的低位未设置为 1 时,CRC 单元有错误?
我还在 Python 中测试了 CRC,并得到了与 CRC 页面上相同的结果。
后来我发现了这个:
举报

更多回帖

发帖
×
20
完善资料,
赚取积分