<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Cortex-M3 (NXP LPC1788)之GPIO

Cortex-M3 (NXP LPC1788)之GPIO

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

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

本文引用地址:http://dyxdggzs.com/article/201611/318445.htm

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

  1. #definerFIO1DIR(*(volatileunsigned*)0x20098020)//高速GPIO方向控制寄存器,用于配置管腳的輸入或輸出,默認為輸入
  2. #definerFIO1MASK(*(volatileunsigned*)0x20098030)//高速GPIO屏蔽寄存器,被屏蔽的位將不能進(jìn)行GPIO的控制操作,默認無(wú)效
  3. #definerFIO1PIN(*(volatileunsigned*)0x20098034)//高速GPIO管腳值寄存器,可以操作未被FIOXMASK屏蔽的GPIO端口
  4. #definerFIO1SET(*(volatileunsigned*)0x20098038)//高速GPIO管腳置位寄存器,置一操作使相應位輸出高電平
  5. #definerFIO1CLR(*(volatileunsigned*)0x2009803c)//高速GPIO管腳清楚寄存器,置一操作使相應位輸出低電平
  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)單,對于GPIO的操作我們可以使用輸出置位寄存器FIOXSET和輸出清零寄存器FIOXCLR進(jìn)行操作,也可以直接使用GPIO管腳值寄存器FIOXPIN進(jìn)行操作。程序最后寫(xiě)了一個(gè)void SystemInit(void)空函數,是因為在啟動(dòng)程序startup_LPC177x_8x.S中 IMPORT SystemInit 聲明了一個(gè)外部函數,并且LDR R0, =SystemInit執行該函數。如果不定義該函數編譯會(huì )報錯。 我們可以在該函數中進(jìn)行LPC1788的時(shí)鐘初始化。我們的程序中沒(méi)有進(jìn)行初始化,根據LPC1788的數據手冊,系統上電或任何復位,將使用內部的IRC作為時(shí)鐘源。而后可以在軟件上進(jìn)行切換,而該切換就可以在void SystemInit(void)中實(shí)現。

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



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

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>