STM32之旅2——按键

发布时间: 2024-08-13
来源: 电子工程世界

    几乎每个项目都有用到按键,为了避免以后在做大项目的时候还在琢磨按键怎么写,现在写一个,方便以后使用。这里是最简单的独立按键驱动方法,和学习51单片机是的一样,更好的方法以后再慢慢补充。


按键驱动

drv_key.h:


#ifndef __DRV_KEY_H

#define __DRV_KEY_H


#define RESET 0

#define SET 1


#define WK_UP_PIN GPIO_PIN_0

#define WK_UP_PORT GPIOA


#define KEY1_PIN GPIO_PIN_5

#define KEY1_PORT GPIOC

#define KEY2_PIN GPIO_PIN_15

#define KEY2_PORT GPIOA


#define WK_UP HAL_GPIO_ReadPin(WK_UP_PORT,WK_UP_PIN)

#define KEY1 HAL_GPIO_ReadPin(KEY1_PORT,KEY1_PIN)

#define KEY2 HAL_GPIO_ReadPin(KEY2_PORT,KEY2_PIN)


void key_scan(void);


#endif

drv_key.c:


#include 'stm32f1xx.h'

#include 'drv_led.h'

#include 'drv_key.h'


void key_scan(void)

{

if(RESET == KEY1)

{

HAL_Delay(10); //消抖

if(RESET == KEY1)

{

/********事件区***********/

LED1_ON;

/********事件区***********/

while(RESET == KEY1); //松手反应

}

}


if(RESET == KEY2)

{

HAL_Delay(10); //消抖

if(RESET == KEY2)

{

/********事件区***********/

LED2_ON;

/********事件区***********/

while(RESET == KEY2); //松手反应

      }

}

}


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。