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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM7學習---按鍵測試程序(LPC2103 IO0PIN)

          ARM7學習---按鍵測試程序(LPC2103 IO0PIN)

          作者: 時間:2016-11-18 來源:網絡 收藏
          今天一直在學習按鍵測試程序,看上去很簡單,按鍵嘛誰都會用,很多種單片機里都是用過了,但是今天還是遇到了一個問題,而且花了我半天的時間調試和找問題。剛開始我不會用LPC2103的GPIO,后來查了數據手冊,知道了讀取IO口的方法是讀取IOPIN寄存器,LPC2103使用的是IO0PIN。我程序寫好,把按鍵通過串口反饋信息。但是我一直測試沒按鍵的時候輸入按鍵口狀態(tài)不穩(wěn)定,有按鍵的時候還是很穩(wěn)定的。我以為程序出錯了,一直在修改程序,但是還是一樣的情況。后來靜下心來想了下,是否IO配置錯了?但是檢查了好多遍,IO是配置為輸入,沒什么問題的。后來終于想起來了,我沒在按鍵的IO口加上拉電阻,以前我在51 STC AVR單片機的按鍵口都不加上拉電阻的,因為IO內部有上拉可以配置的,結果我看了下LPC2103,沒找到。所以我外部加了個10K的上拉電阻,這回再測試,OK了,哈哈!真高興!一下是示例程序:我從我整個程序了挑出了按鍵部分程序,串口通信程序沒添加上去。

          //#include
          //#include

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

          #define K1 (1<<19) //定義按鍵1的引腳

          void keytest(void);

          void keytest(void) //按鍵測試程序
          {
          if((IO0PIN&K1)==0x00) //判斷是否有按鍵按下
          {
          //按鍵去抖
          while((IO0PIN&K1)==0x00) //判斷是否有按鍵放開
          {
          delayms(100);
          }
          UART0_SendStr("K1");
          }
          else
          {;}
          }

          ////////////主程序///////////////

          int mian()

          {

          PINSEL0 |= 0x00000005; //設置I/O連接到UART0,其他為普通GPIO口
          PINSEL1 |= 0x00000000;
          UART0_INT(); //串口初始化

          while(1)

          {keytest();}//按鍵測試程序

          }



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();