linux - i2cDetect 不会显示设备,但它就在那里

标签 linux i2c

只是一个简单的问题。在我的 i2c bus 0 上,我有两个设备:0x320x20

当我使用 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: -- -- -- -- -- -- -- --

但奇怪的是,我可以使用 i2cseti2cget 向它们发送和接收消息。我想这并不是一个真正的技术问题,而只是一个好奇心 - 为什么 0x20 假装没人在家?

谢谢!

最佳答案

各种 I2C 设备在读取/写入字节时可能表现不同。

例如,有些可能需要 write_then_read 命令,但不会确认独立的读取命令。其他人可能期望至少读取/写入 16 位数据,否则事务将失败。

i2cDetect可以使用不同的方法进行探测,例如读/写命令,通过命令行选项进行调整。您可以尝试 -r 或 -q。

如果这不起作用,请查看命令实现和设备的数据表,并确保可以进行探测。

关于linux - i2cDetect 不会显示设备,但它就在那里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27632499/

相关文章:

c - STM32 HAL I2C 在使用中断驱动方法时返回 OVR(溢出/欠载)错误

python - 如何在我的 VPS 服务器 (hostinger) 中更改我的 DocumenRoot?

linux - 如何在 bash 中使用 var 检查现有环境变量?

mysql - 在 Debian 上从源代码安装 MySQL 5.6.16 时出错

c++ - 软 I²C ping 功能

c++ - I2C-dev : Change write and read parameters

linux - linux内核是否发布进程状态更改事件?

linux - 如何在嵌入式Linux中读取U盘卷标?

c - Raspberry Pi Pico DMA 到 I2C 设备

c - I2C ISR 和中断