📄 crc_ccitt_c.c
字号:
typedef unsigned char uchar;
typedef unsigned int uint;
uint crc=0; // CRC 码
code uint crc_table [16]={
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
};
uint ban_crc(uchar *point, uchar len)
// point 为数据指针,len 为数据字节长度
{
uchar da4;
while(len--!=0)
{
da4 = ((uchar)(crc/256))/16;
crc <<= 4;
crc ^= crc_table [da4^(* point /16)];
da4 = ((uchar)(crc/256)/16);
crc <<= 4;
crc ^= crc_table [da4^(* point&0x0f)];
ptr++;
}
return(crc);
}
code uchar crcbuff [] = { 0x01,0x02,0x03,0x04,0x05};
void main(void)
{
uchar *ptr;
crc = 0; // CRC 初值
ptr = crcbuff; // 指向第一个Byte 数据
crc = ban_crc(ptr,5);
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -