CRC Arduino - 健全性测试的简单实现
CRC Arduino - Simple implementation for Sanity test
我正在将命令和参数从一个 arduino 板发送到另一个 arduino 板。我想在另一端验证数据是否已损坏。我正在寻找基本的完整性验证。
我的包看起来像
struct Command {
uint8_t id,
uint8_t action,
int param
}
我将如何创建 CRC 以在另一端进行验证?谢谢
简单示例:
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 值。
我正在将命令和参数从一个 arduino 板发送到另一个 arduino 板。我想在另一端验证数据是否已损坏。我正在寻找基本的完整性验证。
我的包看起来像
struct Command {
uint8_t id,
uint8_t action,
int param
}
我将如何创建 CRC 以在另一端进行验证?谢谢
简单示例:
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 值。