我使用的是 Up square 计算机。我通过 HAT 连接器中的 i2c 端口连接设备。使用时,i2cdetect
我在不同端口上检测到同一设备(由地址标识)。重新启动之间会发生更改。
据我了解,我也许可以通过在 中设置规则来解决此问题etc/udev/rules.d
,但我不确定如何执行此操作。具体来说,我不确定如何过滤传感器来创建规则。我看到的kernel
是i2c-2
,但我想知道这是否会在下次重新启动时改变。
答案1
我在使用 Seed ODYSSEY 板时遇到了与您相同的问题。我通过将规则文件 71-i2c.rules 添加到 /etc/udev/rules.d/ 来解决这个问题
71-i2c.rules的详细代码
SUBSYSTEM=="i2c-dev", KERNELS=="i2c_designware.1", SYMLINK+="i2c-10"
我使用此代码创建指向我想要的特定 i2c 的符号链接。而且我总是可以通过对/dev/i2c-10进行操作来获取正确的数据。
如何获取自己想要的i2c总线的具体数据?您可以通过以下命令获取它:
udevadm info -a /dev/i2c-1
在此命令的输出中,您需要找到您想要的 i2c 总线所具有的特定数据。
答案2
据我所知,i2c 编号是动态分配的,因此它可能会发生变化。因此,我认为你不能静态地使用它。