相关疑难解决方法(0)

在Arduino上实现CRC8以写入MLX90614

更新:我甚至无法使用此计算器来重现本数据表图8和图9中所示的SMBus PEC !

所以我将arduino与Melexis温度传感器连接起来,并且它没有问题 - 除了我似乎无法使CRC检查工作.

我已经成功完成了读取操作(尽管我的软件忽略了数据包错误代码)但我已经尝试了很多CRC8的实现来检查PEC字节无济于事.我现在使用的代码块来自OneWire:

uint8_t OneWire::crc8(const uint8_t *addr, uint8_t len)
{
    uint8_t crc = 0;

    while (len--) {
        uint8_t inbyte = *addr++;
        for (uint8_t i = 8; i; i--) {
            uint8_t mix = (crc ^ inbyte) & 0x01;
            crc >>= 1;
            if (mix) crc ^= 0x8C;
            inbyte >>= 1;
        }
    }
    return crc;
}
Run Code Online (Sandbox Code Playgroud)

我重写它只考虑一个字节:

int smbCRC(int message) {

    uint8_t crc = 0;

  uint8_t inbyte = message & 0xFF;
  for (uint8_t i = …
Run Code Online (Sandbox Code Playgroud)

arduino crc i2c

0
推荐指数
1
解决办法
9212
查看次数

标签 统计

arduino ×1

crc ×1

i2c ×1