雾里闲逛 发表于 2025-4-27 00:08

分享一个CRC8的计算实现

CRC-8软件实现
以多项式G(X) = X^8+X^2+X^1+1来实现。
#define FACTOR (0x107 & 0xFF) //多项式因子(取低8bit)
unsigned char calcCRC(unsigned char *pdat, unsigned int len)
{
    unsigned char j;
    unsigned char crc = 0x00;
    while(len--)
        {
      crc ^= (*pdat++);//前一字节计算CRC后的结果异或上后一字节,再次计算CRC
      for (j=8; j>0; j--)
      {
                 crc <<= 1;
            if (crc & 0x80)//高位为1,需要异或;否则,不需要
            {
                crc ^= FACTOR;
            }
      }
    }

    return crc;
}


分形梦想家 发表于 2025-4-27 15:08

楼主,这个都用在哪些应用上面啊

jobszheng 发表于 2025-4-27 19:47

分形梦想家 发表于 2025-4-27 15:08
楼主,这个都用在哪些应用上面啊

传输数据或才校验数据小于128字节时,可以使用CRC8算法

分形梦想家 发表于 2025-4-27 20:44

明白了。
不过,为什么会出错啊

记忆花园 发表于 2025-4-28 18:36

这个CRC8的算法 很实用的。收下了,谢谢楼主分享

AdaMaYun 发表于 2025-4-29 16:12

CR8校验学习一下

OKAKAKO 发表于 2025-4-29 16:45

CRC8的算法 很实用的

银河漫步 发表于 2025-5-8 15:50

这个校验与校验和算法,哪个更靠谱一下啊
页: [1]
查看完整版本: 分享一个CRC8的计算实现