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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > LPC2103學(xué)習(xí)之GPIO

          LPC2103學(xué)習(xí)之GPIO

          作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
          LPC2103關(guān)于引腳的寄存器有兩個PINSEL0與PINSEL1,都是32位寬度。

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

          PINSEL0與PINSEL1寄存器的每兩位控制一個引腳的功能,則一個腳最多有4種功能。其中PINSEL0控制著P0.0到P0.15的引腳。PINSEL1控制著P0.16到P0.31的引腳。

          PINSEL寄存器的設(shè)置只需兩個步驟。一找到要設(shè)置的引腳。二是選擇引腳的功能。

          如圖所示:

          下面舉例說明

          1.設(shè)置P0.0為GPIO功能

          PINSEL0 = 0x00 /*設(shè)置P0.0到P0.15都為GPIO*/

          2.設(shè)置P0.0為TxD0功能

          PINSEL0 = (PINSEL0 & 0xFFFFFFFC) | 0x01; /*設(shè)置P0.0的功能為TxD0*/

          當(dāng)然如果為了不改變原來引腳的功能。你應(yīng)該采取“讀取——修改——回寫”的方式進(jìn)行。即先讀取寄存器值,然后進(jìn)行一些邏輯的與、或等操作,最后把修改值再寫回寄存器。

          比如:

          PINSEL0 = (PINSEL0 & 0xFFF0FFFF) | (0x05 << 16); /*設(shè)置P0.8與P0.9功能為TxD1/RxD1*/

          關(guān)于LPC2103的GPIO

          LPC2103只有一個32位的通用IO口。由于引腳的功能復(fù)用,使用前必須進(jìn)行相關(guān)引腳設(shè)置,再進(jìn)行操作。比如P0.27到P0.31就是JTAG調(diào)試引腳。LPC2103的GPIO模式有低速與高速模式。

          高速GPIO的控制寄存器位于CPU的局部總線上,而低速GPIO的控制寄存器是掛在VPB總線上。P0口作為高速GPIO使用時,將不能在調(diào)試環(huán)境下觀察在VPB總線上的寄存器。

          下面是一些寄存器的描述。直接上圖好些。

          剩余的以后需要時再補(bǔ)充,現(xiàn)在只需要用到這些。參考資料來自于《EasyARM2103教材》

          每天進(jìn)步一點(diǎn),以后可不就是一點(diǎn)咯。

          補(bǔ)注:就在剛才寫流水燈程序時發(fā)現(xiàn)一個問題

          #define LED1 1<<17

          for(i=0;i<4;i++)
          {
          IO0CLR = (LED1<

          // IO0CLR |= (LED1<Delay(100);
          }



          關(guān)鍵詞: LPC2103GPI

          評論


          技術(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); })();