Linux IIC读写简易教程(linuxiic读写)
Linux下IIC(Inter-Integrated Circuit,通信又称“I2C”)接口的读写是利用i2c-dev.h头文件中的4个库函数来实现的,实现方法应该和其他系统大体类似,操作上也都大同小异。
下面就来介绍如何使用这4个库函数实现IIC读写。1、准备工作。先安装i2c-tools和libi2c-dev包。
sudo apt-get install i2c-tools libi2c-dev
2、打开IIC串行总线:
//打开I2C总线
int i2c_open(int i2cbus, int i2cadd);
// 函数参数:
// i2cbus:表示要打开的I2C总线id,如果有2个IIC,就是1,2
//i2cadd:表示IIC总线上要操作的设备的地址,默认是0
//使用示例:
//打开i2c1总线上的0x50的设备的文件描述符
int fd = i2c_open(1, 0x50);
3、写数据:
//向设备写入len个字节数据
int i2C_Write(int fd,char *buf, int len);
//函数参数:
//fd:IIC设备文件描述符
//buf:要发送的数据缓冲区指针
//len:需要发送的数据个数
//使用示例:
// 向i2c1总线上的0x50的设备写入4字节的数据
unsigned char wdata[4]={0x01,0x02,0x03,0x04};
i2c_Write(fd,wdata,4);
4、读数据:
//从设备读取len个字节数据
int i2C_Read(int fd,char *buf, int len);
//函数参数:
//fd:IIC设备文件描述符
//buf:接收数据缓冲区指针
//len:接收的数据个数
//使用示例:
// 从i2c1总线上的0x50的设备读取4字节的数据
unsigned char rdata[4];
i2c_Read(fd,rdata,4);
5、关闭IIC总线:
//关闭IIC总线
int i2C_Close(int fd);
//函数参数:
//fd:IIC设备文件描述符
//使用示例:
// 关闭i2c1总线上的0x50的设备
int ret = i2C_Close(fd);
需要注意的是,此时I2C还没有开始操作,所有的操作都在调用i2c_open函数后,程序才开始真正的操作I2C,而关闭i2c的时候,可能还存在一些未读取的数据,最好在关闭前做结尾处理,例如i2c_write一个停止状态或者读取Remaining data,然后再关闭I2C设备文件描述符才好!
以上就是Linux下IIC的读写过程,使用起来都是很简单的,只需要知道总线ID以及需要操作的I2C设备的地址即可完成IIC读写。