这里以FT5X06触摸芯片为使用I2C1
1.我们通过连接到开发板上面的终端命令查找到I2C1对应的设备节点。
2.应用层操作 I2C 是以数据包进行交流。数据包对应的结构体 i2c_rdwr_ioctl_data
struct i2c_rdwr_ioctl_data
{
struct i2c_msg __user *msgs;
__u32 nmsgs;}
第一个结构体成员是我们要发送的数据包的指针,第二个结构体成员是发送数据包的个数。
3.定义 i2c_msg 结构体。
struct i2c_msg
{
__u16 addr; /* slave address */
__u16 flags;
#define I2C_M_RECV_LEN 0x0400
__u16 len; /* msg length */
__u8 *buf; /* pointer to msg data */}
结构体成员 addr 是我们从机的地址,flags 为读写标志位,如果 flags 为 1,则为读,反之为 0,则为写。len 为 buf 的大小,单位是字节。当 flags 为 1 是,buf 就是我们要接收的数据,当 flags 为 0 时,就是我们要发送的数据。
应用层程序:
//应用程序与 I2c 通信
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h&