在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 有關(guān)I2C設(shè)計(jì)時(shí)應(yīng)注意的細(xì)節(jié)問(wèn)題

            有關(guān)I2C設(shè)計(jì)時(shí)應(yīng)注意的細(xì)節(jié)問(wèn)題

            作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
            1,在硬件設(shè)計(jì)時(shí),要注意SCL和SDA線要加10K的上拉電阻,因?yàn)槠涠丝谂渲脙?nèi)部沒(méi)有上拉電阻,要不然兩端口在初始狀態(tài)下為低電平,在軟件操作I2C總線置STA信號(hào)時(shí)是不會(huì)有反應(yīng)的。

            2,要注意檢查下功率控制寄存器PCONP相應(yīng)位,確保該功能模塊是打開(kāi)的。

            本文引用地址:http://www.biyoush.com/article/201611/319140.htm

            3 如果根據(jù)I2C狀態(tài)字進(jìn)行相應(yīng)處理采用中斷方式的話,還應(yīng)中斷的相關(guān)設(shè)置。

            【1】對(duì)于LPC21xx,I2C初始化應(yīng)該如下:

            static void BSP_I2C_Init(CPU_INT32U fi2c)
            {
            CPU_INT32U Fpclk = BSP_CPU_PclkFreq();

            //PINSEL0 = (PINSEL0&0xFFFFFF0F) | 0x50; // 設(shè)置I2C控制口有效
            PINSEL0_bit.P0_2 = 1;//設(shè)置I/O口工作模式,使用I2C0口,P0.2,P0.3和UART0的P0.0,P0.1。其余口為GPIO口
            PINSEL0_bit.P0_3 = 1;

            PCONP_bit.PCI2C = 1; //配置PCONP功率模塊使能I2C
            if(fi2c>400000) fi2c = 400000;

            I2SCLH = (Fpclk/fi2c + 1) / 2;//高電平占空比寄存器
            I2SCLL = (Fpclk/fi2c) / 2; //低電平占空比寄存器
            //配置成I2C主模式
            I2CONCLR = STA|SI|AA|STO; //分別為:起始標(biāo)志(STA)|I2C中斷標(biāo)(SI)|應(yīng)答標(biāo)志(AA)|停止標(biāo)志(STO)
            I2CONSET = I2CEN; //I2EN=1,使能I2C功能


            // 設(shè)置I2C中斷允許
            VICIntSelect &= ~(1 << VIC_I2C);// 設(shè)置所有通道為IRQ中斷
            VICVectCntl4 = 0x20|VIC_I2C;// I2C通道分配到IRQ slot 0,即優(yōu)先級(jí)最高
            VICVectAddr4 = (CPU_INT32U)I2C_IRQ_ISR_handler; // 設(shè)置I2C中斷向量地址
            VICIntEnable |= (1 << VIC_I2C); // 使能I2C中斷
            }

            注意上面藍(lán)色粗體部分,搞錯(cuò)了就不會(huì)進(jìn)入中斷或者導(dǎo)致其它中斷源進(jìn)入中斷,VIC_I2C為通道號(hào),細(xì)節(jié)參考其用戶手冊(cè)。

            【2】啟動(dòng)I2C總線,代碼如下:

            I2CONCLR = STA|SI|AA; //0x2C; //起始標(biāo)志(STA)|I2C中斷標(biāo)(SI)|應(yīng)答標(biāo)志(AA)
            I2CONSET = I2CEN|STA; //0x60; //I2C接口使能,設(shè)置為主機(jī),并啟動(dòng)總線
            //I2CONSET = STA; //置位 STA進(jìn)入I2C主發(fā)送器模式,啟動(dòng)發(fā)送START脈沖
            while(0==I2C_end); //等待中斷
            if(1==I2C_end) return(1);
            else return(0);

            只有設(shè)置的起始標(biāo)志位,才能啟動(dòng)I2C總線。

            上面的代碼是參考周立功官網(wǎng)的實(shí)驗(yàn)例程,藍(lán)色字體是做的修改。



            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉