能否简单的写一段I2C通信的代码
时间: 2023-02-16 16:36:22 浏览: 84
I2C通信代码
下面是一段使用 C 语言进行 I2C 通信的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <linux/i2c-dev.h>
#include <sys/ioctl.h>
#include <fcntl.h>
// I2C 设备文件的路径
#define I2C_DEV "/dev/i2c-1"
// 要连接的设备的 I2C 地址
#define I2C_ADDR 0x48
int main(int argc, char *argv[])
{
int fd;
unsigned char buf[2];
// 打开 I2C 设备文件
fd = open(I2C_DEV, O_RDWR);
if (fd < 0) {
perror("open()");
return 1;
}
// 设置 I2C 设备的地址
if (ioctl(fd, I2C_SLAVE, I2C_ADDR) < 0) {
perror("ioctl()");
return 1;
}
// 写入数据
buf[0] = 0x01;
buf[1] = 0x02;
if (write(fd, buf, 2) != 2) {
perror("write()");
return 1;
}
// 读取数据
if (read(fd, buf, 2) != 2) {
perror("read()");
return 1;
}
printf("Read: 0x%02x 0x%02x\n", buf[0], buf[1]);
close(fd);
return 0;
}
```
在这段代码中,我们首先包含了必要的头文件,然后打开了 I2C 设备文件,接着设置了 I2C 设备的地址,然后使用 write() 函数写入数据,最后使用 read() 函数读取数据。
阅读全文