我想使用Nucleo L053R8的crc计算单元来计算3个字节的CRC值。 生成多项式如下:g(X)= x ^ 24 + x ^ 10 + x ^ 9 + x ^ 6 + x ^ 4 + x ^ 3 + x + 1
使用该CRC计算单元似乎只能生成32位长度的CRC,而较小的值只是32位结果的LSBS。 我也知道CRC32的LSB不等于CRC16。
关于应该对输入/输出数据执行哪些操作以获取所需的正确CRC24的任何想法?
答案 0 :(得分:0)
通过将生成多项式左移8位,将生成多项式乘以x ^ 8。如果您有初始值,还可以将其乘以x ^ 8,将其左移8位。将32位CRC码与已移位的多项式和初始值一起使用,然后将所得的32位CRC右移8位。
g(X)*x^8 = x^32 + x^18 + x^17+ x^14 + x^12 + x^11 + x^9 + x^8