Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java BMP280 ServiceSpecificException:I/O错误(代码5)_Java_Android_Android Sensors_Android Things - Fatal编程技术网

Java BMP280 ServiceSpecificException:I/O错误(代码5)

Java BMP280 ServiceSpecificException:I/O错误(代码5),java,android,android-sensors,android-things,Java,Android,Android Sensors,Android Things,我试着用树莓皮3和BMP280来测量温度 我之所以选择3,3V是因为: 要给电路板供电,请给它与微控制器的逻辑电平相同的功率 然后我想初始化传感器 mTemperatureSensorDriver = new Bmx280SensorDriver("I2C1"); 通过执行,我得到以下豁免 Error configuring sensor com.google.android.things.pio.PioException: android.os.ServiceSpecificExc

我试着用树莓皮3和BMP280来测量温度

我之所以选择3,3V是因为:

要给电路板供电,请给它与微控制器的逻辑电平相同的功率

然后我想初始化传感器

mTemperatureSensorDriver = new Bmx280SensorDriver("I2C1");
通过执行,我得到以下豁免

Error configuring sensor
    com.google.android.things.pio.PioException: android.os.ServiceSpecificException: I/O error (code 5)
    at com.google.android.things.pio.I2cDeviceImpl.readRegByte(I2cDeviceImpl.java:81)
    at com.google.android.things.contrib.driver.bmx280.Bmx280.connect(Bmx280.java:215)
    at com.google.android.things.contrib.driver.bmx280.Bmx280.<init>(Bmx280.java:193)
    at com.google.android.things.contrib.driver.bmx280.Bmx280.<init>(Bmx280.java:180)
    at com.google.android.things.contrib.driver.bmx280.Bmx280SensorDriver.<init>(Bmx280SensorDriver.java:55)
配置传感器时出错
com.google.android.things.pio.PioException:android.os.ServiceSpecificException:I/O错误(代码5)
在com.google.android.things.pio.I2cDeviceImpl.readRegByte(I2cDeviceImpl.java:81)上
位于com.google.android.things.contrib.driver.bmx280.bmx280.connect(bmx280.java:215)
位于com.google.android.things.contrib.driver.bmx280.bmx280.(bmx280.java:193)
位于com.google.android.things.contrib.driver.bmx280.bmx280.(bmx280.java:180)
位于com.google.android.things.contrib.driver.bmx280.Bmx280SensorDriver.(Bmx280SensorDriver.java:55)
同样通过5V电源,我也收到同样的异常

我找到了。但我不知道如何检查,如果BMP280是真的连接到亚洲开发银行覆盆子

通过连接,我通过
device.readRegByte(0xD0)
接收相同的验证

这是否意味着BMP280未正确连接? 如果是,如何正确连接BMP280和覆盆子

连接需要一些电阻器吗

更新

通过将BMP280与收割台条焊接解决

使用传感器还需要权限,该权限只能在命令行中授予


adb shell pm grant app.package.com.google.android.things.permission.MANAGE_SENSOR_DRIVERS

查看您的fritzing图表您是否已将SDO连接到BCM3

从数据表中,SDO引脚决定传感器的地址

将SDO连接到GND将导致从 地址1110110(0x76);将其连接到VDDIO会导致从机地址1110111(0x77)

最重要的是:

SDO引脚不能保持浮动状态;如果保持浮动,则 I²C地址将是未定义的

com.google.android.things.pio.PioException:android.os.ServiceSpecificException:I/O错误(代码5)

因此,您的问题可能是未定义的i2c地址

查看您用于Bmx280SensorDriver的代码,它使用地址
0x77

因此,您应该确保SDO线路连接到raspberry pi上的5V。这将确保您的传感器具有正确的地址

或者,将SDO连接至接地,并使用此构造函数:

mTemperatureSensorDriver=新的BMX280传感器驱动器(“I2C1”,0x76)

如果您想了解传感器驱动程序“在引擎盖下”在做什么,有一篇很棒的博客文章和repo可以看到:


;-)

感谢您提供的信息和正确的连接

bmx280=新的bmx280(“I2C1”,0x76)和SDO接地

但是读取值很奇怪

myweatherstation D/站:
温度:186.83298压力:-296.47287

传感器是否可能损坏

TNX


Cris

要从物联网设备读取数据,触点应固定,无任何松动连接

这只能通过将BMP280与收割台条焊接来实现


只有这样才能重新建立连接

尝试使用以下命令访问BMP280传感器:
pio i2c I2C1 0x12 read reg byte 0x76
-或类似命令,以查找问题。另外,看一下答案。它给出了
[警告:client_errors.cc(35)]错误5:I/O错误
。通过调用
pio list i2c
i receive
I2C1
BMP280的图标太大。连接:VIN、GND、SCK和SDI将其连接到地上会给出一个地址
0x76
您需要将其连接到5v或使用另一个构造器(写在我的答案中),答案是3,3V正确。另一个问题:BMP280是否可以在没有焊接的情况下工作?可能吗?:)如果SDO接地,则需要使用此构造函数:
new Bmx280SensorDriver(“I2C1”,0x76)如果您有新问题,请单击按钮提问。如果此问题有助于提供上下文,请包含指向此问题的链接。-是的,这是我的第一篇文章。TNX咨询