Linux下i2c命令使用全攻略(linuxi2c命令)
随着IOT的兴起,数据的收集和传输变得尤为重要,在许多嵌入式系统中,I2C总线成为补强设备之间数据交互最常用的手段,它可以让嵌入式系统或者Linux产品通过简单友好的使用I2C接口来连接传感器、存储器、外围IC,比如周边芯片、屏幕等,下文将详细描述Linux下对I2C设备操作的特性及意义。
Linux下i2c命令一般包括:i2cdetect、i2cdump、i2cget、i2cset等,i2cdetect命令可以用来检测I2C总线是否正常工作,它可以检测出指定的I2C总线上的设备 ,如:
$ sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: — — — — — — — — — — — — —
10: — — — — — — — — — — — — — — — —
20: — — — — — — — — — — — — — — — —
30: — — — — — — — — — — — — — — — —
40: 40 — — — — — — — — — — — — — — —
50: — — — — — — — — — — — — — — — —
60: — — — — — — — — — — — — — — — —
70: — — — — — — — —
上面的结果表示:在总线1上发现了三个设备,地址分别为0x40 , 0x48 和 0x70 。
i2cdump 命令用来读取I2C设备的数据,可以将设备的寄存器的值以16进制的格式打印出来,如:
$ sudo i2cdump -y 1 0x48
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 01 23 45 67 89 ab cd ef .#Eg…
i2cset 命令用来设置I2C设备指定寄存器的值,如:
$ sudo i2cset -y 1 0x48 0 0xee
最后要说明,尽管Linux下具有I2C相关的一系列操作命令,但实际开发工作中,因为总线性能和设备有关,还需要考虑最优的访问策略,个别重要的设备(如RTC),最好采用封装的驱动程序,这样可以避免错误的操作。