新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > HOLTEK主I2C的源程序代碼

        HOLTEK主I2C的源程序代碼

        作者: 時間:2012-08-12 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/171051.htm

        /***********************************************
        讀當前1字節(jié)數(shù)據(jù)函數(shù)
        ***********************************************/
        unsigned char cread(uchar addr)
        {
        unsigned char i;
        i2c_start();
        i2c_writ2(CHIP_ADDR); // Write
        i2c_writ2(addr);
        i2c_start(); // Start
        i2c_writ2(CHIP_ADDR+1); // Read
        i = i2c_rea2(0);
        i2c_stop();
        delay(10);
        return(i);
        }

        /***********************************************
        寫當前1字節(jié)數(shù)據(jù)函數(shù)
        ***********************************************/
        void cwrite(uchar addr,uchar dat)
        {
        i2c_start();
        i2c_writ2(CHIP_ADDR); // Write
        i2c_writ2(addr);
        i2c_writ2(dat);
        i2c_stop();
        delay(30);
        }

        /***********************************************
        讀數(shù)據(jù)
        ***********************************************/
        void read(uchar addr, uchar num, uchar * buf)
        {
        i2c_start();
        i2c_writ2(CHIP_ADDR); // Write
        i2c_writ2(addr);
        i2c_start(); // Start
        i2c_writ2(CHIP_ADDR+1); // Read
        for( ; num>0 ; num--) // 個數(shù)
        {
        *buf++ = i2c_rea2(1); // 讀
        }
        i2c_stop();
        delay(10);
        }

        /***********************************************
        寫數(shù)據(jù)
        ***********************************************/
        void write(uchar addr, uchar num,uchar * buf)
        {
        i2c_start();
        i2c_writ2(CHIP_ADDR); // Write
        i2c_writ2(addr);
        for( ; num>0 ; num--) // 個數(shù)
        {
        i2c_writ2(*buf++); // 寫
        }
        i2c_stop();
        delay(30);
        }

        /***********************************************
        讀1字節(jié)函數(shù)
        ***********************************************/
        uchar i2c_rea2(bit ack)
        {
        uchar i,j;
        j=0x00;
        SDA=1;
        for(i=0;i8;i++)
        {
        SCL=1;
        j=j1;
        if(SDA) j|=0x01;
        SCL=0;delay_5us();
        }
        if(ack) SDA=0;
        SCL=1;delay_5us();
        SCL=0;delay_5us();
        return j;
        }

        /***********************************************
        延時程序
        ***********************************************/
        void delay_5us()
        {
        uchar i;
        //for(i=0;i2;i++){}
        for(i=0;i4;i++)
        {
        }
        }


        上一頁 1 2 下一頁

        關鍵詞: 代碼 源程序 I2C HOLTEK

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 黔西县| 阳城县| 平顶山市| 锡林浩特市| 内乡县| 宁海县| 扬中市| 南宫市| 平江县| 荃湾区| 怀仁县| 大洼县| 绍兴市| 修武县| 浏阳市| 三原县| 什邡市| 恩平市| 灌云县| 达拉特旗| 本溪市| 北川| 米脂县| 原阳县| 固镇县| 客服| 天全县| 余干县| 神池县| 南雄市| 庄河市| 青州市| 绥江县| 常州市| 师宗县| 东乌珠穆沁旗| 天柱县| 清水河县| 成武县| 临桂县| 元朗区|