`
anlx27
  • 浏览: 491425 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

stm32按键不同时长选择不同函数入口

阅读更多

 

 

主要功能描述:  stm32  中通过按键按下不同时长选择不同的函数入口。这里不同函数入口用亮不同的灯来演示。

软件平台:        keil_MDK422

硬件平台:        stm32开发板(核心芯片stm32f103RB)

固件库版本:     v2.0

 

/****         main.c       *****/

/* Includes platform dependent ------------------------------------------*/
#include "configuration.h"  // Configuration of the platform
#include "stm32f10x_lib.h"

extern u8   gcKeyCountEnable;
extern u16  gcKeyCnt;

int main(void)
{
     int i = 0;
     ConfigureInterfaces();

     GPIO_KEY_Config();

     LED_config();


    while (1)
    {
       while( IS_KeyDown( GPIO_KEY_PORT, GPIO_KEY1) == 1)
       {
              gcKeyCountEnable = 1;
              if(gcKeyCnt>8) break;
        }
      if(gcKeyCnt > 1 && gcKeyCnt < 3 )
      {
              GPIO_ResetBits(GPIO_LED_RED, GPIO_RED_PIN);
              for(i = 0; i<5000; i++)
              gcKeyCnt = 0 ;
              gcKeyCountEnable = 0;
      }
      else if(gcKeyCnt > 5 )
     {   

             GPIO_ResetBits(GPIO_LED_GREEN , GPIO_GREEN_PIN);
             for(i = 0; i<5000; i++)
             gcKeyCnt = 0 ;
             gcKeyCountEnable = 0;

     }
    else if (gcKeyCnt== 0)
   { 
             GPIO_SetBits(GPIO_LED_GREEN , GPIO_GREEN_PIN);
             GPIO_SetBits(GPIO_LED_RED , GPIO_RED_PIN); 
    }

  }

}

 

/******     st32mf10x_it.c     *******/

 

void TIM2_IRQHandler(void)
{
    if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)

    {
        TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
        
         if( gcKeyCountEnable==1 )

        gcKeyCnt ++;        
     }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics