<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          Cortex-M3 (NXP LPC1788)之GPIO

          作者: 時(shí)間:2016-11-19 來源:網(wǎng)絡(luò) 收藏

          經(jīng)過前一篇的分析,現(xiàn)在可以進(jìn)入C環(huán)境進(jìn)行各個(gè)模塊的學(xué)習(xí)。首先進(jìn)行簡(jiǎn)單的GPIO控制LED燈的操作,開發(fā)板通過GPIO1.18控制LED燈,電路如下圖:

          本文引用地址:http://www.ex-cimer.com/article/201611/318445.htm

          為了對(duì)LPC1788的內(nèi)部結(jié)構(gòu)有更好的理解和學(xué)習(xí),雖然NXP給出了封裝好的庫(kù)函數(shù),但是我將自己編寫代碼便于直接對(duì)內(nèi)部原理進(jìn)行分析。代碼如下

          1. #definerFIO1DIR(*(volatileunsigned*)0x20098020)//高速GPIO方向控制寄存器,用于配置管腳的輸入或輸出,默認(rèn)為輸入
          2. #definerFIO1MASK(*(volatileunsigned*)0x20098030)//高速GPIO屏蔽寄存器,被屏蔽的位將不能進(jìn)行GPIO的控制操作,默認(rèn)無效
          3. #definerFIO1PIN(*(volatileunsigned*)0x20098034)//高速GPIO管腳值寄存器,可以操作未被FIOXMASK屏蔽的GPIO端口
          4. #definerFIO1SET(*(volatileunsigned*)0x20098038)//高速GPIO管腳置位寄存器,置一操作使相應(yīng)位輸出高電平
          5. #definerFIO1CLR(*(volatileunsigned*)0x2009803c)//高速GPIO管腳清楚寄存器,置一操作使相應(yīng)位輸出低電平
          6. voidDelay(int);
          7. intmain(void)
          8. {
          9. rFIO1DIR|=(1<<18);//GPIO1.18->OUTPUT
          10. while(1)
          11. {
          12. rFIO1SET|=(1<<18);//輸出高電平可以用rFIO1PIN|=(1<<18);
          13. Delay(500000);
          14. rFIO1CLR|=(1<<18);//輸出低電平可以用rFIO1PIN&=~(1<<18);
          15. Delay(500000);
          16. }
          17. }
          18. voidDelay(inti)
          19. {
          20. intk;
          21. for(k=0;k
          22. }
          23. voidSystemInit(void)
          24. {
          25. }

          程序比較簡(jiǎn)單,對(duì)于GPIO的操作我們可以使用輸出置位寄存器FIOXSET和輸出清零寄存器FIOXCLR進(jìn)行操作,也可以直接使用GPIO管腳值寄存器FIOXPIN進(jìn)行操作。程序最后寫了一個(gè)void SystemInit(void)空函數(shù),是因?yàn)樵趩?dòng)程序startup_LPC177x_8x.S中 IMPORT SystemInit 聲明了一個(gè)外部函數(shù),并且LDR R0, =SystemInit執(zhí)行該函數(shù)。如果不定義該函數(shù)編譯會(huì)報(bào)錯(cuò)。 我們可以在該函數(shù)中進(jìn)行LPC1788的時(shí)鐘初始化。我們的程序中沒有進(jìn)行初始化,根據(jù)LPC1788的數(shù)據(jù)手冊(cè),系統(tǒng)上電或任何復(fù)位,將使用內(nèi)部的IRC作為時(shí)鐘源。而后可以在軟件上進(jìn)行切換,而該切換就可以在void SystemInit(void)中實(shí)現(xiàn)。

          最后可以使用之前環(huán)境搭建中介紹的進(jìn)行Debug調(diào)試或者下載程序。



          關(guān)鍵詞: Cortex-M3NXPLPC1788GPI

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();