/** * 使用定时器来轮询Key_Scan()函数,定时节拍为2ms, * 状态转换时间为10ms,即每次进入switch case语句的时间差为10ms * 利用该10ms的间隙跳过按键抖动 */ #ifndef _bsp_btn_H #define _bsp_btn_H // 区分长按和短按 typedef enum { NULL_KEY = 0, SHORT_KEY = 1, LONG_KEY = 2, }KEY_TYPE; // 按键状态:检测、确认、释放 typedef enum { KEY_CHECK = 0, KEY_COMFIRM = 1, KEY_RELEASE = 2, }KEY_STATE; // 按键值 typedef enum { KEY_NULL, KEY_UP, KEY_DOWN, KEY_PWR, }KEY_VALUE; extern KEY_VALUE g_Key; extern KEY_TYPE g_KeyActionFlag; extern void Key_Scan(void);