新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 讀寫24LCxx系列的EEPROM的C語言程序實例

        讀寫24LCxx系列的EEPROM的C語言程序實例

        作者: 時間:2012-07-18 來源:網絡 收藏

        //*
        //***********************************************
        void EE_SEQU_Read(unsigned char ctrl,unsigned char addr,unsigned char length,unsigned char *dptr)
        {
        IdleI2C(); // ensure module is idle
        StartI2C(); // Start condition
        I2C_Done(); // Wait Start condition completed

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

        WriteI2C(ctrl); // Write Control to
        while(SSPCON2bits.ACKSTAT); // test for ACK condition, if received
        I2C_Done(); // Clear SSPIF flag

        WriteI2C(addr); // Write Address to
        while(SSPCON2bits.ACKSTAT); // test for ACK condition, if received
        I2C_Done(); // Clear SSPIF flag

        RestartI2C(); // initiate Restart condition
        I2C_Done();

        WriteI2C(ctrl+1); // Write Control to
        while(SSPCON2bits.ACKSTAT); // Test for ACK condition, if received
        I2C_Done(); // Clear SSPIF flag

        while (length!=0)
        {
        *dptr=ReadI2C(); // Enable I2C Receiver Store EEPROM data to Point buffer
        I2C_Done();
        dptr++;
        length--;

        if (length==0) NotAckI2C();
        else AckI2C(); // Continue read next data, send a acknowledge to EEPROM

        I2C_Done();
        }

        StopI2C(); // send STOP condition
        I2C_Done(); // wait until stop condition is over
        }

        //***********************************************
        //* Check I2C action that is completed *
        //***********************************************
        void I2C_Done(void)
        {
        while (!PIR1bits.SSPIF); // Completed the action when the SSPIF is Hi.
        PIR1bits.SSPIF=0; // Clear SSPIF
        }

        //************************************************
        //* Initial I2C Master Mode with 7 bits Address *
        //* Clock Speed : 100KHz @4MHz *
        //************************************************
        void Initialize_I2C_Master(void)
        {
        OpenI2C(MASTER,SLEW_ON);
        SSPADD= 9;
        }

        c語言相關文章:c語言教程



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 通河县| 金川县| 兴业县| 长治县| 商城县| 清丰县| 广灵县| 旌德县| 宜宾市| 凤山市| 资溪县| 岳普湖县| 定襄县| 九台市| 余姚市| 祁门县| 长岭县| 金秀| 沙湾县| 兴文县| 湖北省| 新安县| 集安市| 吴堡县| 理塘县| 龙口市| 邮箱| 洪湖市| 石河子市| 鄄城县| 屯门区| 南溪县| 河曲县| 沙洋县| 瑞丽市| 苗栗市| 滨海县| 聊城市| 衡阳县| 惠东县| 新乡市|