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读写。


数据运维技术 » Linux IIC读写简易教程(linuxiic读写)