繁体   English   中英

如何从Arduino从站(通过I2C)读取Raspberry Pi 3B上C语言中的float值?

[英]How to read a float value in C on Raspberry Pi 3B from Arduino slave (via I2C)?

我的Arduino从属设备上有一个float变量,我想将其发送给Raspberry Pi 3 Model B主设备。 我知道的是,我可能需要从Arduino发送一个字节数组,然后在我的Raspberry Pi上正确读取它。 我用没有运气至今。

我不知道该怎么读,因为WiringPi库仅提供int值作为回报(不过,发送0-255就像一个超级按钮一样)。

它已在此处完成,但对于Python和此处已完成。 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);

您可以在传输之前将浮点值转换为以ASCII表示的浮点值(字符串),然后将浮点值(字符串)的ASCII表示形式转换回Raspberry Pi 3上的浮点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM