포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

특정 i2c bus line(여기서는 /dev/i2c-0 - 즉, 첫번째 버스라인)에 붙어 있는 i2c를 scan하는 
소스입니다.

참고하시기 바랍니다.
=====================================
#include <stdlib.h>

#include <string.h>

#include <assert.h>
#include <sys/user.h>
#include <fcntl.h>
#include <sys/mman.h>

#include <sys/ioctl.h>
#include <errno.h>
#define I2C_RDWR    0x0707

struct i2c_msg {
        unsigned short addr;
        unsigned short flags;
        unsigned short len;
        unsigned char * buf;
};


struct i2c_rdwr_ioctl_data {
        struct i2c_msg *msgs;
        unsigned int nmsgs;
};


int fd;

int i2c_scan()
{
        int rc, adr, found=0;
        struct i2c_msg msg;
        struct i2c_rdwr_ioctl_data msgset;

        /* scan the whole I²C bus range */
        for (adr = 1; adr < 128; adr++) {
                msg.addr  = adr;
                msg.flags = 0;
                msg.buf   = 0;
                msg.len   = 0;

                msgset.msgs  = &msg;
                msgset.nmsgs = 1;

                rc = ioctl(fd , I2C_RDWR , &msgset );
                if ( rc == 1 ) {
                        found++;
                        printf("Find Device I2C Addr = %x \n", adr);
                }
        }
}



int main (int argc, char *argv[])
{
        int j;
        int n, i;
        int iret = 0;
        int chip;
        unsigned char value = 0x00;
        fd = open("/dev/i2c-0", O_RDWR);

        if (fd < 0) {
                printf("Open Error...!\n");
                exit(0);
        }

        i2c_scan();
        close(fd);

}

"사람은 자기가 보고 싶은 현실만 볼 뿐이다." - Gaius Julius Caesar
엮인글 :
http://www.aesop.or.kr/index.php?mid=Board_Documents_Linux_Applications&document_srl=79433&act=trackback&key=9b2
List of Articles
번호 제목 글쓴이 날짜 조회 수
93 Yocto project 소개자료 [2] 고도리 2019-08-24 424
92 Yocto zynq howto - 예전자료 고도리 2019-08-24 152
91 apache-1.3.33 arm porting by tssuk [3] 고도리 2013-05-21 2924
» i2c scan하는 코드입니다. 고도리 2012-07-27 5042
89 dropbear ssh daemon 포팅하기 [1] 고도리 2012-06-30 5664
88 ffmpeg을 이용한 camera 영상 저장 file [1] 고도리 2012-05-01 5859
87 Linux application에서의 clock과 system timer설정 고도리 2011-08-15 7364
86 ffmpeg x86 compile & cross compile howto file 고도리 2011-08-05 7819
85 oss를 이용한 read, write, read/write program file [2] 고도리 2011-01-25 10523
84 GIT 사용법 (ProGIT) - 2.6. 태그(TAGS) 붙이기 [2] JhoonKim 2010-02-09 15124
83 GIT 사용법 (ProGIT) - 2.5. 원격 저장소의 사용 방법 [2] JhoonKim 2010-02-04 16044
82 GIT 사용법 (ProGIT) - 2.4. 작업의 취소 [1] JhoonKim 2010-02-03 15100
81 GIT 사용법 (ProGIT) - 2.3. 위탁 이력의 열람 file [1] JhoonKim 2010-02-03 13302
80 GIT 사용법 (ProGIT) - 2.2. GIT 저장소(Repository)에 기록 file [2] JhoonKim 2010-01-21 16019
79 GIT 사용법 (ProGIT) - 2.1. GIT 저장소(Repository)의 취득 JhoonKim 2010-01-20 18347
78 GIT 사용법 (ProGIT) - 1.5. 최초 GIT의 환경 설정 [3] JhoonKim 2010-01-13 16592
77 GIT 사용법 (ProGIT) - 1.4. GIT 설치 JhoonKim 2010-01-11 21192
76 GIT 사용법 (ProGIT) - 1.2. GIT 개발 역사 / 1.3. GIT 기본 ... file [3] JhoonKim 2010-01-10 14776
75 GIT 사용법 (ProGIT) - 1.1. 버전 관리 시스템의 개념 file [6] JhoonKim 2010-01-07 19487
74 I.MX Multimedia and Applications Framework 기술자료 ... file [2] 장석원 2009-10-26 11048

사용자 로그인