Linux下进行I2C硬件接口编程,写一下代码
时间: 2024-03-20 07:44:01 浏览: 44
下面是在Linux下进行I2C硬件接口编程的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <linux/i2c-dev.h>
#include <unistd.h>
#define I2C_ADDR 0x50 // I2C设备地址
int main()
{
int fd;
char buf[10];
// 打开I2C设备
if ((fd = open("/dev/i2c-0", O_RDWR)) < 0)
{
perror("Failed to open i2c device.\n");
exit(1);
}
// 设置I2C从设备地址
if (ioctl(fd, I2C_SLAVE, I2C_ADDR) < 0)
{
perror("Failed to set i2c slave address.\n");
exit(1);
}
// 向I2C设备写入数据
buf[0] = 0x01;
buf[1] = 0x02;
if (write(fd, buf, 2) != 2)
{
perror("Failed to write to i2c device.\n");
exit(1);
}
// 从I2C设备读取数据
if (read(fd, buf, 2) != 2)
{
perror("Failed to read from i2c device.\n");
exit(1);
}
printf("Read data: 0x%x 0x%x\n", buf[0], buf[1]);
// 关闭I2C设备
close(fd);
return 0;
}
```
上述代码中,首先通过open函数打开I2C设备文件,然后通过ioctl函数设置I2C从设备地址。接着,通过write函数向I2C设备写入数据,再通过read函数从I2C设备读取数据。最后,通过close函数关闭I2C设备文件。
阅读全文