(운영체제로 안드로이드 것들과 함께 사용) 나무 딸기 PI3 모듈의 I2C를 사용하는 방법 안드로이드 것들 온도가 BME280 센서에서 읽기를 표시합니다 라즈베리 파이 모듈 (3)을 사용하여 응용 프로그램 앱에서 샘플 프로젝트를 다운로드했지만 주소가있는 I2cDevice를 여는 동안 문제가 발생했습니다.내가 샘플을 개발하기 위해 노력하고
다음은 코드의 자세한 사항은 다음과 같습니다
개인 정적 최종 INT 주소 = 0x76; android.os.ServiceSpecificException :
private void printDeviceId() {
List<String> deviceList = managerService.getI2cBusList();
if (deviceList.isEmpty()) {
Log.i(TAG, "No I2C bus available on this device.");
} else {
Log.i(TAG, "List of available devices: " + deviceList);
}
I2cDevice device = null;
try {
device = managerService.openI2cDevice(deviceList.get(0), ADDRESS);
Log.d(TAG, "Device ID byte: 0x" + Integer.toHexString(device.readRegByte(0xD0)));
} catch (IOException|RuntimeException e) {
Log.e(TAG, e.getMessage(), e);
} finally {
try {
device.close();
} catch (Exception ex) {
Log.d(TAG, "Error closing device");
}
}
}
사실 openI2cDevice 방법에의 충돌 deviceList이 deviceList.get (0) "I2C1"여기
은 즉, 하나의 장치 만있는 동안은 충돌 로그입니다 : I/O 오류 (코드 5) com.google.android.things.pio.PioException : android.os.ServiceSpecificException : I/O 오류 (코드 5) com.google.android.things.pio.I2cDeviceImpl에서 . readRegByte (I2cDeviceImpl.java:81) (MainActivity.java:92) com.example.pitepmerature.MainActivity.printDeviceId android.app.Activity.performCreate (Activity.java:6991 AT) ) android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1214에서 ) android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2731에서 ) android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2856) android.app.ActivityThread.-wrap11에서 에서 (알 출처 : 0)에서 android.app.Act ivityThread $ H.handleMessage (ActivityThread.java:1589) android.os.Handler.dispatchMessage (Handler.java:106) at android.os.Looper.loop (Looper.java:164) android.app에 있습니다. ActivityThread.main (ActivityThread.java:6494) at java.lang.reflect.Method.invoke (기본 메소드) at com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) at com .android.internal.os.ZygoteInit.main (ZygoteInit.java:807) 원인 : android.os.ServiceSpecificException : I/O 오류 (코드 5) android.os.Parcel.readException (Parcel.java:2018)) androi에 d.os.Parcel.readException (Parcel.java:1950) com.google.android.things.pio.IPeripheralManagerClient $ Stub $ Proxy.I2cReadRegByte (IPeripheralManagerClient.java:1301) com.google.android.things. com.example.pitepmerature.MainActivity.onCreate (MainActivity.java:34) 에서 com.example.pitepmerature.MainActivity.printDeviceId (MainActivity.java:92) 에서 pio.I2cDeviceImpl.readRegByte (I2cDeviceImpl.java:79)에서 android.app.Activity.performCreate (Activity.java:7000) android.app.Instrumentation.callActivityOnCreate에서 android.app.Activity.performCreate (Activity.java:6991) 에서 (계측.java : 1214)
주소를 0x77로 변경하려고했지만 작동하지 않았습니다. 또한 많은 블로그를 살펴 보았지만 수정 사항을 찾지 못했습니다. 내가 코드와 설정의 모든 것을 선호
블로그 링크 :
http://zenandroid.io/writing-a-driver-for-android-things-bme280-humidity-sensor/
이 도와주세요.
따라 핀도 확인 : 여기 샘플 프로젝트 자식 링크 인 .com/things/sdk/pio/pio-cli.html # I2C) :''i2c I2C1 0x12 읽기 - reg 바이트 0x76'. 문제가 회로에있을 수 있습니다. –
또한 [공식 예] (https://github.com/androidthings/weatherstation)를 살펴보십시오 –
하드웨어가 올바르게 연결되었는지 확인할 수 있습니까? –