📄 crc_16.c
字号:
#define crc_16_c
#include "main.h"
//Polynomial: x^16 + x^12 + x^5 + 1
void crc16(unsigned char r_data[],unsigned int length)
{
unsigned char cl,ch;
unsigned char savehi,savelo;
int ii,flag;
crc16hi=0xFF;
crc16lo=0xFF;
cl=0x1;
ch=0xA0;
for (ii=0;ii<length-2;ii++)
{
crc16lo=(crc16lo ^ r_data[ii]);
for (flag=0;flag<8;flag++)
{
savehi=crc16hi;
savelo=crc16lo;
crc16hi=(crc16hi>>1);
crc16lo=(crc16lo>>1);
if ((savehi & 0x01)==0x01)
crc16lo=(crc16lo | 0x80);
if ((savelo & 0x01)==0x01)
{
crc16hi = (crc16hi ^ ch);
crc16lo = (crc16lo ^ cl);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -