一、是什么?
CRC16是循环冗余校验的一种,是一种根据数据产生校验码的方法。它是一种比较常用的校验算法,可以用于错误检测和纠正等方面。CRC16是16位的校验码,可以检测出32位以内的错误。在通信协议、网络传输等领域中,CRC16被广泛应用.
二、使用步骤
1.引入库
代码如下(示例):
#include <stdio.h>
#include <stdint.h>
uint16_t gen_crc16(uint16_t crc, uint8_t* data, uint32_t len)
{
uint32_t i;
for (i = 0; i < len; i++)
{
crc = ((crc >> 8) | (crc << 8)) & 0xFFFF;
crc ^= (data[i] & 0xFF);
crc ^= ((crc & 0xFF) >> 4);
crc ^= (crc << 12) & 0xFFFF;
crc ^= ((crc & 0xFF) << 5) & 0xFFFF;
}
return (crc & 0xFFFF);
}
int main()
{
uint8_t data[1024] = {0};
uint16_t crc = 0xffff;
crc = gen_crc16(crc,data,1024);
/* 我的第一个 C 程序 */
printf("gen_crc16 crc is 0x%x\n",crc);
return 0;
}