1.i2cdetect
扫描I2C总线上的设备
1.1 i2cdetect -l查看当前系统的I2C总线
总线挂载了I2C设备,可通过i2cdetect扫描每一个总线的所有设备
i2cdetect -y -r 1
:查看总线1上的所有从设备("--"
表示地址被检测到了,但是没有芯片,"UU"
表示地址正在被某一个驱动使用,而16进制的地址号60
)
查询总线1(I2C -1)的功能,命令为i2cdetect -F 1
1.i2cdetect
i2cdetect -y -r 1
2.i2cget
:获取某一个总线上某一个从设备的寄存器值
如下:获取1总线从设备0x62寄存器00的值
i2cget -f -y 1 0x62 0x00
-f:强制访问设备
-y:取消交互模式。默认情况下,i2cdetect将等待用户的确认,当使用此标志时,它将直接执行操作。
3.i2cset
设置某一个总线上某一个从设备的寄存器的值
如下:设置1总线从设备0x62寄存器00的值为0x00
i2cset -f -y 1 0x62 0x00 0x00
设置i2c1上从地址为0x62的外设0x00寄存器的值为0x00
4.i2cdump
:查看某一个总线上某一个从设备所有寄存器的值,寄存器地址为8位
如下:查看i2c1上0x62外设所有寄存器的值
i2cdump -f -y 1 0x62
5.i2ctranfer
:向寄存器地址为16位的从设备读取或者写入数据
i2ctransfer -f -y 1 w2@0x62 0x00 0x00 r32 读取
1:哪条总线
w2:写两个字节地址
0x00 0x00:寄存器地址
r32:往后32个寄存器所对应的寄存器值
i2ctransfer -f -y 1 w2@0x62 0x00 0x00 0x10
1:哪条总线
w2:写两个字节地址
0x00 0x00:寄存器地址
0x10:0x00 0x00寄存器地址往后的寄存器写入0x10