按位计算crc码算法.c

来自「单片机数据通讯典型应用(光盘内容)」· C语言 代码 · 共 23 行

C
23
字号
/* *ptr 指向发送缓冲区的首字节,len 是要发送的总字节数,0x1021 与CRC-CCITT多项式有关的显示。*/unsigned int cal_crc(unsigned char *ptr, unsigned char len){  unsigned char i;  unsigned int crc=0; //初始化CRC码  while(len--!=0)  {    for(i=0x80; i!=0; i/=2)    {      if((crc&0x8000)!=0)  //余式CRC 乘以2 再求CRC      {        crc*=2;        crc^=0x1021;      }       else crc*=2;      if((*ptr&i)!=0)        crc^=0x1021; //再加上本位的CRC     }    ptr++;  }  return(crc);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?