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
链接: https://notes.z-dd.online/2019/05/22/Linux%E5%BA%94%E7%94%A8%E5%B1%82I2C%E6%93%8D%E4%BD%9C/
来源: DD'Notes
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。