上面是我的微信和QQ群,欢迎新朋友的加入。
内核中配置好IIC之后。查看设备启动信息
设备启动成功
I2c扫描
通过i2cdetect -l指令可以查看I2C总线
[root@nuc980: /]$i2cdetect -l
i2c-3 i2c nuc980-i2c3 I2C adapter
I2C设备查询
若总线上挂载I2C从设备,可通过i2cdetect扫描某个I2C总线上的所有设备
[root@nuc980: /]$i2cdetect -y 3
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: -- -- -- -- -- -- -- --
说明1:-y为一个可选参数,如果有-y参数的存在则会有一个用户交互过程,意思是希望用户停止使用该I2C总线。如果写入该参数,则没有这个交互过程,一般该参数在脚本中使用。
说明2:此处I2C总线共挂载了一个设备
寄存器内容导出
通过i2cdump指令可导出I2C设备中的所有寄存器内容
[root@nuc980: /]$i2cdump -y 3 0x32
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 06 36 1f 45 2b 02 7f f4 87 bc f6 80 07 02 2b 40 ?6?E+?????????+@
10: 06 36 1f 45 2b 02 7f 94 00 00 00 80 07 02 2b 40 ?6?E+???...???+@
20: 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ?...............
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
i2cdump -y 3 0x32指令中,
-y 代表取消用户交互过程,直接执行指令;
3 代表I2C总线编号;
0x32 代表I2C设备从机地址,此处选择配置芯片的高256字节内容。
寄存器内容写入
如果向I2C设备中写入某字节
[root@nuc980: /]$i2cset -y 3 0x32 0x00 0x13
[root@nuc980: /]$ i2cget -y 3 0x32 0x00
0x13
[root@nuc980: /]$
-y 代表曲线用户交互过程,直接执行指令
3 代表I2C总线编号
0x32 代表I2C设备地址,此处选择AT24C04的低256字节内容
0x00 代表存储器地址
0x13 代表存储器地址中的具体内容
寄存器内容读出
-
[root@nuc980: /]$i2cset -y 3 0x32 0x00 0x13 [root@nuc980: /]$ i2cget -y 3 0x32 0x00 0x13 [root@nuc980: /]$
如果从I2C从设备中读出某字节
-y 代表曲线用户交互过程,直接执行指令
3 代表I2C总线编号
0x32 代表I2C设备地址,此处选择AT24C04的低256字节内容
0x00 代表存储器地址