STM32之旅2——按键

STM32之旅2——按键

    几乎每个项目都有用到按键,为了避免以后在做大项目的时候还在琢磨按键怎么写,现在写一个,方便以后使用。这里是最简单的独立按键驱动方法,和学习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);	//松手反应
	      }
	}
}
posted @ 2020-08-07 22:30  曾经梦想少年  阅读(224)  评论(0编辑  收藏  举报