/** ****************************************************************************** * @file Key.h * @author jjj * @version V1.0.0 * @date 06/13/2022 * @brief ****************************************************************************** * * *

© COPYRIGHT 2022

****************************************************************************** **/ #ifndef _KEY_H #define _KEY_H #ifdef __cplusplus extern "C" { #endif #include "global.h" #define KEYA_GPIO_PORT GPIOA #define KEYC_GPIO_PORT GPIOC #define KEYA_COL2 GPIO_PIN_2 #define KEYA_COL3 GPIO_PIN_1 #define KEYA_ROW0 GPIO_PIN_0 #define KEYA_ROW1 GPIO_PIN_3 #define KEYA_ROW2 GPIO_PIN_6 #define KEYA_ROW3 GPIO_PIN_5 #define KEYC_COL0 GPIO_PIN_11 #define KEYC_COL1 GPIO_PIN_10 #define KEY_SHAKE_COUNT 4 #define KEY_PRESS 0 #define KEY1 (0x01) //(1) #define KEY2 (0x02) //(1<<1) #define KEY3 (0x04) //(1<<2) #define KEY4 (0x08) //(1<<3) #define KEY5 (0x10) //(1<<4) #define KEY6 (0x20) //(1<<5) #define KEY7 (0x40) //(1<<6) #define KEY8 (0x80) //(1<<7) #define KEY9 (0x100) //(1<<8) #define KEYF (0x200) //(1<<9) #define KEY0 (0x400) //(1<<10) #define KEYC (0x800) //(1<<11) #define KEYDA (0x1000) //(1<<12) #define KEYDB (0x2000) //(1<<13) #define KEYD (KEYDA|KEYDB) #define KEYVA (0x4000) //(1<<14) #define KEYVB (0x8000) //(1<<15) #define KEYV (KEYVA|KEYVB) #define KEY1GPIO GPIOC #define KEY1PIN KEYC_COL0 #define KEY2GPIO GPIOC #define KEY2PIN KEYC_COL1 #define KEY3GPIO GPIOA #define KEY3PIN KEYA_COL2 #define KEYDAGPIO GPIOA #define KEYDAPIN KEYA_COL3 #define KEY4GPIO GPIOC #define KEY4PIN KEYC_COL0 #define KEY5GPIO GPIOC #define KEY5PIN KEYC_COL1 #define KEY6GPIO GPIOA #define KEY6PIN KEYA_COL2 #define KEYDBGPIO GPIOA #define KEYDBPIN KEYA_COL3 #define KEY7GPIO GPIOC #define KEY7PIN KEYC_COL0 #define KEY8GPIO GPIOC #define KEY8PIN KEYC_COL1 #define KEY9GPIO GPIOA #define KEY9PIN KEYA_COL2 #define KEYVAGPIO GPIOA #define KEYVAPIN KEYA_COL3 #define KEYFnGPIO GPIOC #define KEYFnPIN KEYC_COL0 #define KEY0GPIO GPIOC #define KEY0PIN KEYC_COL1 #define KEYCGPIO GPIOA #define KEYCPIN KEYA_COL2 #define KEYVBGPIO GPIOA #define KEYVBPIN KEYA_COL3 #define KEY_CHECKCOUNT 30 #define KEY_VALIDATE 20 #define KEY_HOLDCOUNT 500 typedef struct { volatile uint8_t pressed; volatile uint8_t released; volatile uint8_t press_count; volatile uint8_t release_count; volatile uint16_t hold_count; }KEY_STATUS; void Key_Init(void); void Key_Event(void); void Key_SendData(void); void Key_Wait(void); uint8_t startShowDevicemod(void); #ifdef __cplusplus } #endif #endif /* _KEY_H */