#ifndef _KEY_H_
#define _KEY_H_
#include "stm32f10x_conf.h"
#include "delay.h"
#include "hardware_inc.h"
#include "includes.h"
#include "stdbool.h"
typedef struct
{
u8 trg; //触发标志位
u8 cont; //计数标志位
}KEY_STATUS;
typedef struct
{
_Bool left_trg; //左按键触发标志位
u8 ltmr; //左按键定时器
u8 lcnt_trg; //左按键模拟队列
_Bool right_trg; //右按键触发标志位
u8 rtmr; //右按键定时器
u8 rcnt_trg; //右按键模拟队列
}KEY_TRG;
void Key_Init(void);
u8 Key_Scan(KEY_STATUS * key);
void Get_Key_Status(KEY_TRG* key_trg);
#endif
#include "key.h"
/*!
* \fn: Key_Init
* \brief: 按键接口初始化
* \param: [in] void
* \return: void
* \date: 2016/11/10
*/
void Key_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB,ENABLE);
//Configure pin as input
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOA