u8 CRC8(u8 *u8_data,u8 u8_len)
{
u8 i, j;
u8 u8_crc8;
u8 u8_poly;
u8_crc8 = 0xFF;
u8_poly = 0x1D;
for (i = 0; i < u8_len; i++)
{
u8_crc8 ^= u8_data[i];
for (j = 0; j < 8; j++)
{
if (u8_crc8 & 0x80)
{
u8_crc8 = (u8_crc8 << 1) ^ u8_poly;
}
else
{
u8_crc8 <<= 1;
}
}
}
u8_crc8 ^= (u8)0xFF;
return u8_crc8;
}
举例: 00 00 00 00 结果为0X59
ff ff ff ff 结果为0X74
F2 01 83 结果为 0X37
本文深入探讨了CRC8校验算法的实现细节,通过具体的C语言代码示例,展示了如何计算CRC8值。并提供了多个数据输入的例子,验证了算法的正确性和有效性。
2175

被折叠的 条评论
为什么被折叠?



