论坛首页 入门技术论坛

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

浏览 1770 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-07-02  

 

 

主要功能描述:  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