以前我有篇博客写的是i2ctool的使用方法,博客链接:i2ctool的使用方法
里面介绍的i2cset,i2cget等的指令,都是基于8位地址的,但今天我遇到了个问题,需要操作16位地址,显然这几个指令已经无法满足我的需求,这个时候我发现i2ctool的4.0以上版本新加入了一个新的指令:i2ctransfer。
i2ctransfer可以对i2c设备指定定长度进行读写操作,下面我举几个简单的例子:
i2ctransfer -y -f 1 w2@0x48 0x00 0x20 r16 //读取0020后16个字节
其中参数1为i2c1,w2表示写两个字节,@0x48为你的i2c设备(注意要右移一位),0x00 0x20 为地址,r16为读取的数据。
i2ctransfer -y -f 1 w4@0x48 0x00 0x20 0x00 0x77 //0020地址开始写入数据
其中1为i2c1,w4表示写入四个字节,@0x48为你的i2c设备(注意要右移一位),0x00 0x20 为地址,0x00 0x77为写入的数据。
工具下载:i2ctool工具下载
下载之