`
anlx27
  • 浏览: 497536 次
  • 性别: 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 ++;        
     }
}

分享到:
评论

相关推荐

    stm32多级菜单实现12864.rar_12864多级菜单_STM32按键翻页_stm32 freertos_stm32 m

    在本项目"stm32多级菜单实现12864.rar"中,重点是利用STM32与FreeRTOS实时操作系统来实现一个具有12864液晶屏显示的多级菜单系统,并支持按键翻页功能。12864是一种常见的LCD模块,它有128x64像素的分辨率,通常用于...

    stm32f1实验3 按键输入实验

    stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键输入实验 stm32f1实验3 按键...

    按键程序_stm32按键程序_源码

    在这个"按键程序_stm32按键程序_源码"的压缩包中,我们可以预见到它包含了一系列关于STM32如何处理按键输入的代码示例。 首先,STM32的按键通常通过GPIO(通用输入/输出)接口进行连接。GPIO口可以配置为输入模式,...

    stm32按键程序

    程序中,我们需要定义按键中断服务函数,当用户按下按键时,系统会触发中断。中断服务函数会检查并处理按键事件。在STM32CubeMX工具中,我们可以快速配置GPIO端口、中断和时钟设置,生成初始化代码。接着,在主循环...

    STM32F103的KEY按键检测源程序.rar_32按键检测key_STM32F103_stm32按键检测_按键检测_源程序

    当按下按键时,对应的GPIO引脚电压将由高变为低,这可以通过读取GPIO的状态来检测到。在C语言编程中,我们可以使用HAL库(Hardware Abstraction Layer,硬件抽象层)提供的函数来配置GPIO和中断。 以下是一些关键...

    STM32按键(单击、双击、长按)

    当用户按下按键时,对应的GPIO引脚会由高电平变为低电平,松开时则恢复为高电平。通过读取这些引脚的状态变化,我们可以识别出按键的不同操作模式。 ### 2. 单击检测 单击是最基本的按键操作。STM32通过设置中断...

    STM32按键控制LED自主设计实验

    STM32按键控制LED自主设计实验是嵌入式系统开发中的一个基础练习,它涉及到STM32微控制器的GPIO(General Purpose Input/Output)管理、中断处理以及延时函数的运用。在这个实验中,我们将深入理解STM32的硬件结构和...

    stm32按键长按短按示例.7z

    本示例主要讲解如何在STM32F103上实现按键的长按和短按功能,通过外部中断和定时器来检测按键的按下时长。 首先,我们要了解STM32的外部中断(EXTI)机制。STM32F103支持多种中断源,包括外部引脚中断。在本例中,...

    stm32f103的按键扫描与LED

    本项目主要关注的是如何在STM32F103上实现按键扫描和LED控制,这对于初学者来说是一次很好的学习实践。 首先,我们需要了解STM32F103的GPIO(General Purpose Input/Output)接口,这是与外部设备交互的基础。STM32...

    stm32 按键输入

    当按下按键时,GPIO口的电平会被拉低,通过读取这个电平变化,我们可以知道按键是否被按下。 在软件编程上,我们通常采用轮询和中断两种方式来检测按键状态。轮询方式是指在主循环中不断读取GPIO口的状态,判断按键...

    STM32按键.zip_STM32f103vet6_STM32按键_stm32f103vet6灯_按键模块

    当按下按键时,对应的GPIO引脚电平会发生变化,这种变化可以被中断服务程序捕捉到,从而触发相应的操作。在本项目中,可能采用了外部中断模式,通过配置GPIO端口的中断触发方式(如上升沿或下降沿触发),实现按键的...

    1-2-4-按键控制LED程序_uncleqiz_Led控制程序_stm32按键控制led_stm32按键程序_stm32按键l

    当按下按键时,STM32的GPIO会检测到低电平,从而触发相应的处理。 接下来,我们要讨论中断(Interrupt)。中断是微控制器处理外部事件的一种机制。在这个项目中,STM32会监听按键引脚上的电平变化。当按键被按下时...

    STM32按键扫描代码

    在STM32中,可以利用内存空间创建一个FIFO队列,每次按键事件发生时,将事件类型(按下、弹起、长按等)存入队列,然后在主循环或中断服务程序中依次处理。 事件检测是按键扫描的核心部分,包括以下几个方面: 1. ...

    STM32按键长短按

    5. **回调函数处理机制**:在STM32中,可以设置多个回调函数来处理不同的按键事件。例如,定义一个函数处理短按,另一个处理长按。当按键中断触发时,根据中断标志和计时器状态调用相应的回调函数。 6. **软件设计*...

    STM32F1和STM32F4延时函数

    总结,STM32F1和STM32F4的延时函数实现涉及硬件定时器、软件循环计数等多种方式,需要根据实际需求和资源选择合适的方法。给定的"DELAY"文件提供了现成的延时库,简化了开发者的工作。在使用时,需注意延时精度、...

    STM32 通过按键控制LED灯亮度

    当按下某个按键时,程序会更新对应的PWM比较值,进而改变LED的亮度。此外,为了防止按键抖动,可能还需要加入去抖动处理,例如延时检测或者两次按键间隔检测。 在实现过程中,我们还需要配置中断服务函数,以便在...

    stm32按键按键功能

    当按键被按下时,会产生中断请求,STM32的中断控制器会调用相应的中断服务程序。在中断服务程序中,可以读取GPIO状态,识别按键动作,并执行相应功能。 4. **消抖处理**: 按键按下和释放过程中,由于机械触点的...

    STM32按键控制LED

    在这个项目中,我们使用STM32F401RET6型号的芯片来实现一个简单的功能:通过按键控制LED灯的状态,即按键按下时灯亮,松开时灯灭,并且每按一次按键,LED的状态就反转一次。下面将详细介绍这一过程的关键技术点。 1...

    STM32按键扫描/按键中断/外部中断

    按键中断模式利用了STM32的外部中断(EXTI)功能,它允许按键动作触发中断,从而允许CPU处理其他任务,只有在检测到按键动作时才响应,这样可以提高程序的效率。在中断模式中,首先需要对按键引脚进行上拉输入模式的...

    STM32按键发声程序

    在这个"STM32按键发声程序"项目中,我们将探讨如何利用STM32的GPIO(General Purpose Input/Output)端口来实现按键输入,并通过控制蜂鸣器来产生不同音调。 首先,GPIO是STM32芯片上的一种基本功能,用于与外部...

Global site tag (gtag.js) - Google Analytics