#ifndef __KEY_H #define __KEY_H #include "stm8s.h" typedef enum { KeyState_IDLE, //空闲状态。 KeyState_CUT, //消抖状态。 KeyState_PRESSED, //按下状态。 KeyState_WAIT_DOUBLE_CLICK, //等待双击状态。 KeyState_DOUBLE_CLICKED, //双击状态。 KeyState_LONG_PRESSED //长按状态。 }KeyState; typedef struct key_state { KeyState key_flag; //按键标志 BitStatus level_state; //电平状态 uint16_t press_time; //按下时间 uint16_t end_time; //松开时间 uint8_t key_cut; //按键消抖 KeyState key_last; //按键最终状态 }key_state_t; extern key_state_t g_key; //按键状态全局结构体 extern void KeyProcess(void); #endif