我的Arduino奴隶上有一个浮点变量,我想将它发送给我的Raspberry Pi 3 Model B大师。我所知道的是,我可能需要从Arduino发送一个字节数组,然后在我的Raspberry Pi上正确读取它。到目前为止,我没有运气this。
我不知道如何阅读它,因为WiringPi库只提供int值作为回报(发送0-255就像魅力一样)。
已完成here,但对于Python和here。 C有一组不同的I2C库,并没有提供struct。
是否可以使用WiringPi从I2C读取一个字节数组并将其转换为C中的浮点数?
将Arduino上的数字乘以(除去逗号)并将其除以Raspberry Pi也是可以的,但是通过WiringPi发送超过255的问题仍然存在。
以下是我如何在Arduino上发送数据:
void sendData(){
Wire.write((byte*) &floatNumber, 4);
}
以下是我如何在Raspberry上读取8位值(0-255)(例如Wire.write(129)):
int fd;
int data;
wiringPiSetup();
fd=wiringPiI2CSetup(0x04);
data=wiringPiI2CRead(fd);
ui->lcdNumber->display(data);
答案 0 :(得分:0)
您可以在传输之前将浮点值转换为ASCII表示的浮点值(字符串),并将浮点值(字符串)的ASCII表示转换回Raspberry Pi 3上的浮点数。