uint16_t calculatecrc(void)
{
uint16_t crc = 0, i;
for (i = 0; i < sizeof(data) / sizeof(data[0]); i++)
{
crc = crc16_update(crc, data[i]);
}
return crc; //returns checksum over all elements
}
uint16_t crc16_update(uint16_t crc, uint8_t a)
{
int i;
crc ^= a;
for (i = 0; i < 8; ++i)
{
if (crc & 1)
crc = (crc >> 1) ^ 0xA001;
else
crc = (crc >> 1);
}
return crc;
}
CRC_IBM
最新推荐文章于 2024-04-20 20:29:34 发布