我在 Arduino 上使用 24 位 I2C ADC,并且没有 3 字节(24 位)数据类型,所以我改用uint32_t
32 位无符号整数。然而,我的实际输出是一个 24 位有符号数,如下所示:
如果您有兴趣,这里还有我用来读取结果的代码:
uint32_t readData(){
Wire.beginTransmission(address);
Wire.write(0x10);
Wire.endTransmission();
Wire.requestFrom(address,3);
byte dataMSB = Wire.read();
byte data = Wire.read();
byte dataLSB = Wire.read();
uint32_t data32 = dataMSB;
data32 <<= 8;
data32 |= data;
data32 <<= 8;
data32 |= dataLSB;
return data32;
}
为了让这个数字有用,我需要将它转换回 24 位有符号整数(我不确定如何做到这一点,或者如果可能的话,因为 24 不是 2 的幂)所以我是有点卡住了。如果有人可以帮助我,那就太好了,因为我几乎完成了这个项目,这是最后几个步骤之一。