Int fd, ret ;
Char VOUT_COMMAND[2] = {0x21,voltage} ; voltage为电压值
Fd = open(“/dev/i2c/0”, O_RDWR);
If(fd == -1)
{
Perror(“error open\n”);
exit(-1);
}
Printf(“fd = %d\n”, fd);
Int addr = 0x50; 设备地址
if( ioctl(fd, I2C_SLAVE, addr) < 0)
{
perror("set the slave addr error\n");
exit(-1);
}
printf("the slave device addr is %d\n", addr);
if(ioctl (fd, I2C_TIMEOUT, 1) < 0)
{
perror("set the time out error\n");
exit(-1);
}
printf("time out back is set to 1\n");
if(ioctl(fd, I2C_RETRIES, 1) < 0)
{
perror("set retries error!\n");
exit(-1);
}
printf("retries back is set to 1\n");
if(ioctl(fd, I2C_TENBIT, 0) < 0)
{
perror("set the addr bit error\n");
exit(-1);
}
printf("the addr is seven bit\n");
ret = write(fd, VOUT_COMMAND, 2); 写入电压值
printf("ret = %d\n", ret);
if(ret != 2)
{
perror("write error\n");
exit(-1);
}
printf("write successfully!\n");
//读取电压值
ret = write(fd, &VOUT_COMMAND[0], 1); 写入要读取的地址
ret = read(fd, &VOUT_COMMAND[1], 1); 读取数据
printf("the voltage read back data is %d\n", VOUT_COMMAND[1]);
这是我自己随便写的一段测试代码,没有很好的去封装