明远智睿技术论坛

标题: i.MX6Q I2C驱动测试 [打印本页]

作者: wujinzhong888    时间: 2016-12-13 16:07
标题: i.MX6Q I2C驱动测试
i.MX6S I2C驱动中有一个例子:气压高度传感器。想问一下,测试这个模块的应用程序源码在哪里?

作者: 软件01    时间: 2016-12-14 10:35
很少用这个东西,所以没写这个应用,方法跟其他I2C的方法一样的,首先访问I2C的设备地址,在访问相关寄存器
作者: wujinzhong888    时间: 2016-12-16 11:28
i.MX6Q I2C芯片ADS1110 linux设备文件节点/dev/i2c-0 已解决 源码如下:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/i2c-dev.h>

#define I2C_DEV "/dev/i2c-0"
#define CHIP_ADDR 0x48

static int read_I2C(int fd, char buff[], int addr, int count)
{
        int res;
        if(write(fd,&addr,1)!=1){
                printf("write failed\n");
                return -1;
        }

        while(1){
                res=read(fd,buff,count);

                int lum_value = buff[0]*256 + buff[1];
                printf("The lum value is %d\n", lum_value);

                usleep(100000);
        }

        return res;
}

int main()
{
        int fd, res;
        fd = open(I2C_DEV, O_RDWR);
        if(fd < 0){
                printf("####i2c test device open failed####\n");
                return (-1);
        }

        res = ioctl(fd,I2C_TENBIT,0);
        res = ioctl(fd,I2C_SLAVE,CHIP_ADDR);

        char buff[4];

        read_I2C(fd, buff, CHIP_ADDR,4);

        close(fd);

        return 0;
}






欢迎光临 明远智睿技术论坛 (http://bbs.myzr.com.cn/) Powered by Discuz! X3.2