I2C Detector 使用说明
I2C Detector 显示 Linux 系统发现的 I2C 总线和地址响应情况。 安装后的程序名为 lilygo-ui-i2cdetector。
使用前准备
- 使用已启用 I2C 控制器、正确配置引脚的 Linux 设备。
- 内核需要提供
i2c-dev和/dev/i2c-*节点。 - 运行应用的用户需要这些节点的读写权限。
- 按板卡要求完成供电、共地、信号电压与上拉连接。
应用一打开就会扫描所有发现的适配器。 扫描会执行 SMBus Quick 写或 Byte 读,部分器件可能受探测影响;请先确认连接的设备允许这样扫描。 界面选择某条总线只改变显示,不能限制扫描范围。
第一次扫描
- 在 Launcher 打开 I2C Detector。
- 等待自动扫描结束;状态区显示总地址数及不可用总线数量。
- 选择
/dev/i2c-N,查看该总线的地址矩阵、计数或错误。 - 接线或权限变化后,点击 Scan 重新发现并扫描全部适配器。
- 扫描期间 Scan 暂时不可用,旧结果仍可查看和切换。
新结果完成后一次性更新,不逐地址显示进度。 只要原总线仍存在,重新扫描后会保留其选择。 应用不会定时重扫;需要更新结果时请手动点击 Scan。
如何读地址图
| 显示 | 含义 |
|---|---|
| 绿色地址 | 探测成功,或地址已被内核驱动占用。 |
| 普通未高亮地址 | 本次未检测到响应,也可能是事务不支持或总线不可用。 |
| 弱化地址 | 0x00–0x02、0x78–0x7F 不参与探测。 |
矩阵显示 0x00–0x7F,实际探测范围为 0x03–0x77。 例如 3C 表示七位地址 0x3C,不是带读写位的八位地址。 界面中的 “devices” 统计的是检测到的地址数,不是已识别的器件型号数。 绿色格子不区分普通响应与内核占用,不会显示独立的 UU 标记。 点击地址不会打开寄存器编辑器,应用也不能识别多个器件共用同一地址。
权限与平台
可以在设备终端检查:
sh
ls -l /dev/i2c-*
id由系统管理员按照实际设备组或 udev 策略授予访问权限。 安装应用本身不会启用控制器或自动创建权限规则。 Linux 桌面模拟器同样会扫描真实硬件;SDL 窗口不代表演示模式。 macOS 等非 Linux 系统显示 I2C scanning is only available on Linux devices,不会提供模拟总线。
数据保存与限制
扫描结果只保留在当前会话内,没有历史保存或导出按钮。 没有总线白名单、地址范围或自动扫描间隔设置。 结果是地址探测信息,不能替代传感器测量或器件通信测试。
常见问题
| 现象 | 处理 |
|---|---|
No I2C buses found | 检查控制器、驱动和 /dev/i2c-*,再点击 Scan。 |
Bus unavailable: Permission denied | 检查运行账户对节点的读写权限和组成员资格。 |
| 计数为 0 | 核对总线、供电、接线、七位地址以及设备支持的 SMBus 事务。 |
状态含 unavailable | 切换到对应总线查看错误;其他总线仍可能正常。 |
| 扫描或退出较慢 | 内核事务可能仍在等待,检查适配器和驱动状态。 |
本文依据本地 I2C Detector 的扫描说明及扫描器、页面实现整理。