Linux应用层I2C操作:
背景:
项目需求,需检测是否有camera sensor(CHIP_ADDR:0x6C>>1),
通过I2C读取sensor的CHIP ID(CHIP_ID_H:0x300A, CHIP_ID_L:0x300B)为0x27 0x70
应用层I2C操作:
C
unsigned char rddata[2]={0};
unsigned char rdaddr0[2] = {0x30, 0x0A}; //CHIP_ID_H 0x27
unsigned char rdaddr1[2] = {0x30, 0x0B}; //CHIP_ID_L 0x70
int fd =open(CHIP, O_RDWR);
if (fd< 0) {
printf("open"CHIP"failed\n");
return -1;
}
#if 0 //方式一
if (ioctl(fd, I2C_SLAVE_FORCE, CHIP_ADDR) < 0) {
/* 设置芯片地址 */
printf("oictl:setslave address failed\n");
..............
作者: Shell