0
我使用Pro Mini作为I2C从机,它计算双精度。 ESP8266 WiFi模块要求这两个字节,它通过字节逐字节发送。通过I2C从Arduino Pro Mini发送双向ESP8266
现在我试图在另一端重新组装双层,但它不工作。 上ESP8266运行当前代码:
// ABOVE SETUP
union {
byte bytes[4];
double value;
} bytedouble;
// IN LOOP
while(Wire.available()){
byte read = Wire.read();
bytedouble.bytes[num] = read;
num++;
}
Serial.println(bytedouble.value); // Returns ovf/overflow
我在Arduino的临迷你发现了一个double
为4个字节,但是,ESP8266 8个字节。我可以转换吗?
我的猜测是,你可以在两边都使用'float',因为你的Arduino显然不提供双精度。 – user3528438
是的,但我使用几乎每种方法都返回'双打'的库。但是在Arduino中看起来'double'和'float'是一样的,我可以将'union'改成'float'成员吗?我会试试看!谢谢:) –
我建议你除了将'union'改为'float'之外,还将它明确地转换为'float',以便在'double'的定义发生变化时代码将来不会中断。 – user3528438