打印
[其它应用]

分享一个CRC8的计算实现

[复制链接]
191|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
雾里闲逛|  楼主 | 2025-4-27 00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 | 只看该作者
明白了。
不过,为什么会出错啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝