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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32F103 PB口用作獨立按鍵

          STM32F103 PB口用作獨立按鍵

          作者: 時間:2016-11-19 來源:網(wǎng)絡 收藏
          前一段時間由于項目需要畫了一個STM32F103的最小系統(tǒng)板,項目中需要很多硬件資源于是我將PB口作為獨立按鍵輸入口,板子打樣回來后測試其他一切都還不錯但在獨立按鍵測試時出現(xiàn)了問題,測試時采用的是掃描方式,按鍵支持連續(xù)喝不連續(xù)兩種方式,出現(xiàn)以下問題:

          1、單次按鍵時沒有任何反應

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

          2、連續(xù)模式下PB3口控制下的LED一直閃爍,其他按鍵觸發(fā)也不正常。

          今天突然想起來解決這個問題,于是百度了許久才發(fā)現(xiàn)PB3與JTAG復用,于是關(guān)閉JTAG后解決了問題,現(xiàn)在和大家分享下希望對大家有用。 獨立按鍵掃描方式程序如下(使用PB口關(guān)閉JTAG用紅色字體標記):

          #ifndef __key_H
          #define __key_H

          #include "stm32f10x.h"
          #include "delay.h"

          #define key0 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0) //right
          #define key1 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1) //middle
          #define key2 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2) //down
          #define key3 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_3) //left
          #define key4 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_4) //up
          #define key_right  1
          #define key_mid 2
          #define key_down 3
          #define key_left 4
          #define key_up 5

          void KEY_init(void)
          {
          GPIO_InitTypeDef GPIO_InitStructure;
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOBRCC_APB2Periph_AFIO,ENABLE); //配置時鐘
          GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);             //關(guān)閉

          GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0GPIO_Pin_1GPIO_Pin_2GPIO_Pin_3GPIO_Pin_4;
          GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
          GPIO_Init(GPIOB,&GPIO_InitStructure);
          }

          u8 KEY_scan(u8 mode)
          {
          static u8 key_p=1;
          if(mode)key_p=1;
          if(key_p&&(key0==0key1==0key2==0key3==0key4==0))
          {
          delay_ms(100);
          key_p=0;
          if(key0==0) return key_right;
          else if(key1==0)  return key_mid;
          else if(key2==0)  return key_down;
          else if(key3==0)  return key_left;
          else if(key4==0)  return key_up;
          }
          else if(key0==1&&key1==1&&key2==1&&key3==1&&key4==1) key_p=1;
          return 0;
          }
          #endif



          關(guān)鍵詞: STM32F103PB口獨立按

          評論


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