中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MSP430非模擬IIC總線控制程序

        MSP430非模擬IIC總線控制程序

        作者: 時間:2016-12-02 來源:網絡 收藏
        對于MSP430的學習經歷一個從痛苦到對430很有感情的轉變.當然開始學習的時候那是相當惱火.網上也沒有什么很多的相關資料.就算有資料也是給不全.參考與學習都不很方便.經過多方面的努力和找書再到對程序的仔細讀,感到非模擬的總線帶來的方便還是很多的. 下面就是程序和流程圖:



        IIC.h

        void Init_IIC(void);
        void EEPROM_ByteWrite(unsigned char nAddr,unsigned char nVal);
        unsigned char EEPROM_RandomRead(unsigned char nAddr);
        unsigned char EEPROM_CurrentAddressRead(void);
        void EEPROM_AckPolling(void);
        void Init_CLK(void);
        void Init_IIC_Port(void);

        Main.C

        /*******************************************
        IIC for AT24c16 OR AT24CXXX 系列

        只要控制好IICRM IICSTP IICSTT 其硬件會自動完成
        SCL SDA的一系列時序 只要注意各個發(fā)送與接收的控制標志位.
        ******************************************/
        #include
        #include "IIC.h"
        volatile unsigned char Data[6];
        void main(void)
        {
        //volatile unsigned char Data[6];

        //停止看門狗
        WDTCTL = WDTPW+WDTHOLD;

        //初始化端口
        Init_IIC_Port();

        //初始化時鐘
        Init_CLK();
        //I2C初始化
        Init_IIC(); //置傳輸方式及控制方式

        //打開中斷
        _EINT();

        //寫入數據
        EEPROM_ByteWrite(0x0000,0x12);
        //等待寫操作完成
        EEPROM_AckPolling();
        //寫入數據
        EEPROM_ByteWrite(0x0001,0x34);
        //等待寫操作完成
        EEPROM_AckPolling();
        //寫入數據
        EEPROM_ByteWrite(0x0002,0x56);
        //等待寫操作完成
        EEPROM_AckPolling();
        //寫入數據
        EEPROM_ByteWrite(0x0003,0x78);
        //等待寫操作完成
        EEPROM_AckPolling();
        //寫入數據
        EEPROM_ByteWrite(0x0004,0x9A);
        //等待寫操作完成
        EEPROM_AckPolling();
        //寫入數據
        EEPROM_ByteWrite(0x0005,0xBC);
        //等待寫操作完成
        EEPROM_AckPolling();

        //讀出數據,隨機讀
        Data[0] = EEPROM_RandomRead(0x0000); //地址自動加1
        //讀出數據,當前地址讀
        Data[1] = EEPROM_CurrentAddressRead();
        //讀出數據,當前地址讀
        Data[2] = EEPROM_CurrentAddressRead();
        //讀出數據,當前地址讀
        Data[3] = EEPROM_CurrentAddressRead();
        //讀出數據,當前地址讀
        Data[4] = EEPROM_CurrentAddressRead();
        //讀出數據,當前地址讀
        Data[5] = EEPROM_CurrentAddressRead();
        }

        上一頁 1 2 3 下一頁

        評論


        技術專區(qū)

        關閉