i2cset 16位寄存器地址

时间:2017-09-19 07:08:48

标签: linux i2c

我有一个设备通过i2c协议进行通信。该器件的寄存器地址为16位,但linux i2c-tools仅支持8位地址。但我找到了处理它的东西。

例如,要读取0x0006地址的寄存器,我使用以下方法: (假设busId为0,设备i2c地址为0x48) i2cset -y 0 0x48 0x00 0x06(此命令将寄存器地址设置为0x0006) i2cget -y 0 0x48(此命令值0xBA为true) 当我再次调用i2cget -y 0 0x48命令时,它将返回下一个地址的值。

写作操作正如我所料。但是当我尝试写入同一个寄存器时,我失败了。我尝试以下命令:

i2cset -y 0 0x48 0x00 0x06 0xBA 0x0B i

此命令不会返回错误。但是当我再次读取寄存器时,我看到寄存器没有变化。

我使用的设备是AP0100CS。寄存器地址是可写的。我不知道i2cset有什么问题。

0 个答案:

没有答案