打印
[STM32F1]

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

[复制链接]
424|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
捉虫天师|  楼主 | 2017-12-25 19:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主要功能描述:  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 ++;        
     }
}


沙发
wahahaheihei| | 2017-12-25 21:01 | 只看该作者
好东西,学习怎么通过按键时间控制了。

使用特权

评论回复
板凳
dongnanxibei| | 2017-12-26 10:58 | 只看该作者
这个方法不错,学习了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

193

主题

3057

帖子

7

粉丝