只是一个简单的问题。在我的i2c上bus 0
,我有两个设备,0x32
和0x20
。
当我使用i2cdetect时,仅显示其中之一。
# ./i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- 32 -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
不过,奇怪的是,我可以使用i2cset
和i2cget
向他们两个发送和接收消息。我想这不是一个真正的技术问题,而是一个好奇心–为什么0x20
假装没人在家?
谢谢!
各种I2C设备在读取/写入字节时的行为可能有所不同。
例如,有些可能期望使用write_then_read命令,而不会确认独立的读取命令。其他人可能希望读取/写入至少16位数据,否则事务将失败。
i2cdetect可以使用不同的方法进行探测,例如通过命令行选项调整的读/写命令。您可以尝试-r或-q。
如果这不起作用,请查看命令实现和设备的数据表,并确保可以进行探测。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句