按键的单击与双击与长按短按实现方式相近,以下代码仅供参考,写得不是很好
适用于蓝桥杯开发板
程序扩展性不强,更重要的是思路
io.h
#ifndef _IO_H
#define _IO_H
#include "stm32f10x.h"
#define SingleClick 1
#define DoubleClick 2
#define KEY_B1 1
#define KEY_B2 2
#define KEY_B3 3
#define KEY_B4 4
#define TimeInterval 300 //判断双击与单击时间
#define keyState1 1
#define keyState2 2
#define keyState3 3
#define keyState4 4
//enum ss{keyState1,keyState2,keyState3,keyState4}keyState;
#define KEY0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)
#define KEY1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)
#define KEY2 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)
#define KEY3 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2)
enum k{key0,key1,key2,key3};
extern void Delay_Ms(u32 nTime);
void RCC_Init(void);