CRC的Arduino - 简单的实施理智测试

问题描述 投票:0回答:1

我发送命令和参数从一个Arduino板到另一个。我想验证数据是否在另一端被破坏或没有。我正在寻找一个基本的完整性验证。

我的包看起来像

struct Command {
   uint8_t id,
   uint8_t action,
   int param
}

我将如何去创造CRC在另一端验证?谢谢。

arduino checksum crc
1个回答
1
投票

简单的例子:

unsigned crc8_koop(unsigned crc, unsigned char const *data, size_t len) {
    if (data == NULL)
        return 0;
    crc = ~crc & 0xff;
    while (len--) {
        crc ^= *data++;
        for (unsigned k = 0; k < 8; k++)
            crc = crc & 1 ? (crc >> 1) ^ 0xb2 : crc >> 1;
    }
    return crc ^ 0xff;
}

data等于呼吁NULL获取初始CRC值。

© www.soinside.com 2019 - 2024. All rights reserved.