unsigned short crc(unsigned char addr)
{
  int i,j;
  unsigned tmp = 0xffff;
  unsigned char buff[6] = {0, 0x03, 0x00, 0x00, 0x00, 0x02};
  buff[0] = addr;

  for(i=0; i<6; i++)
  {
    tmp = buff[i]^tmp;
    for(j=0; j<8; j++)
    {
      if(tmp&0x01)
      {
        tmp = tmp>>1;
        tmp = tmp^0xA001;
      }
      else
      {
        tmp = tmp>>1;
      }
    }
  }
  return tmp;
}

 

返回的是16位的数

校验低八位 :tmp&0xFF;

校验高八位:tmp>>8;

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-18
  • 2022-12-23
  • 2021-05-12
相关资源
相似解决方案