1

你好亲爱的Android事物的先驱!

我正在寻求您的帮助,因为过去几个月我一直在尝试为 Adafruit SI7021 温度和湿度传感器构建一个 android things 驱动程序。 这是托管该项目的 github 存储库的链接。连接和获取芯片 IDreadRegByte工作正常。但是,我PioException: I/O error尝试使用readRegBuffer.

int address = 0xE5; // from datasheet
byte[] buffer = new byte[3];

device.readRegBuffer(address, buffer, 3); // throws PioException

我不知道我能给你什么其他线索来清楚地了解这个问题,所以不要犹豫,问任何问题。

请不要让我买一个 arduino 并重新开始;)

非常感谢!

PS:用简单的话我是物联网和Android的初学者。

4

1 回答 1

0

我相信你的readRegBuffer期望没有做。来自 [API 文档](https://developer.android.com/things/reference/com/google/android/things/pio/I2cDevice.html#readRegBuffer (int, byte[], int)):

从给定寄存器读取多个字节。

如果您要读取的寄存器长度为 3 个字节(24 位),则将使用此方法。查看部件的数据表(p21),0xE5相对湿度寄存器似乎是一个 2 位字。

期望 3 个字节会产生问题,因为您的设备将期望返回 3 个字节。但是,如果只返回两个字节,则实际结果将不一致。

于 2017-12-06T18:36:57.867 回答