打印
[N32G430]

‌在N32单片机上实现CRC校验

[复制链接]
30|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wilhelmina2|  楼主 | 2024-12-24 08:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式



uint32_t crc32(uint8_t *data, uint32_t len) {
    uint32_t crc = 0xFFFFFFFF; // 初始值
    uint32_t polynomial = 0x04C11DB7; // 多项式

    while (len--) {
        crc ^= *data++;
        for (int i = 0; i < 8; i++) {
            if (crc & 1) {
                crc = (crc >> 1) ^ polynomial;
            } else {
                crc >>= 1;
            }
        }
    }
    return crc ^ 0xFFFFFFFF; // 最终异或值
}


uint8_t data[] = {0x01, 0x02, 0x03, 0x04}; // 需要校验的数据
uint32_t crc_result = crc32(data, sizeof(data)); // 调用CRC函数计算校验码
printf("CRC-32: 0x%X\n", crc_result); // 输出校验结果


使用特权

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

本版积分规则

25

主题

1304

帖子

1

粉丝