0
問題の検出方法は?私はI2Cバス上で1つのデバイスを見つけようとしています。バスは見つかりましたが、デバイスは見つかりませんでした。私は2つのメインボード、2つの異なるデバイス(AM2321とコンバータI2C-> 3線)を持っていて、それらをさまざまな組み合わせで試しました。私は間違ったことをしますが、正確には何かを理解することはできません。 Androidの物事DP 6でI2CはRaspberry Pi 3でAndroidのものとは動作しません
val bus = manager.i2cBusList.first() // in my device one and only one bus now
Log.d("happy", "bus: $bus")
val devices = (0..127).filter { address ->
manager.openI2cDevice(bus, address).use { device ->
try {
device.write(ByteArray(1), 1)
true
} catch (e: IOException) {
false
}
}
}
if (devices.isEmpty()) {
Log.d("happy", "no devices")
} else {
devices.forEach { address ->
Log.d("happy", "device $address")
}
}
ありがとうございます。非常に良いリソースが、まだ私のために動作しません。 'pio'は私のコードと同じエラーを返します。また、箱から取り出したスキャナもありません。ハードウェアに問題があるようですが、それを検出する方法はありません。ネイティブのLinuxをセットアップし、そこから試してみましょう。 – tse
私は間違いなくI2Cを使用しており、正常に動作しました。他のコンポーネントで試すことはできますか?おそらくI2Cピンが壊れていますか? – shalafi
"'pio'が私のコードと同じエラーを返す場合" - あなたのコードに問題はありません。問題が有線接続であるか、[shalafi](https://stackoverflow.com/users/539171/shalafi)がI2Cピンが壊れていると書いている可能性があります。 –