0

我的 Arduino 从站上有一个浮点变量,我想将它发送到我的 Raspberry Pi 3 Model B 主站。我所知道的是,我可能需要从 Arduino 发送一个字节数组,然后在我的 Raspberry Pi 上正确读取它。到目前为止,我没有运气使用它。

我不知道我应该如何阅读它,因为 WiringPi 库只提供 int 值作为回报(虽然发送 0-255 就像一个魅力)。

它已经在这里完成了,但是对于 Python 和这里。C 有一组不同的 I2C 库,并且不提供诸如结构之类的东西。

是否可以使用 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);
4

1 回答 1

0

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

于 2018-01-05T11:32:15.023 回答