CRC校验比较常用,本例校验算法异或0x1021.
U16 u16CRCVerify (const U8 *pu8Data,
U32 u32Len,
U16 u16CRCInit)
{
U8 u8i;
U32 u16CRC = u16CRCInit;
while (u32Len--) {
u8i = 8;
u16CRC = u16CRC ^ (((uint16_t)*pu8Data++) << 8);
do {
if (u16CRC & 0x8000) {
u16CRC = u16CRC << 1 ^ 0x1021;
} else {
u16CRC = u16CRC << 1;
}
} while (--u8i);
}
return u16CRC;
}
v v v v v v
本文为作者原创,请勿转载,转载请联系作者。
点击下方卡片,关注我的公众号,有最新的文章和项目动态。
v v v v v v