#ifndef GPIO_H__ #define GPIO_H__ typedef enum { GPIO_PORT_GROUP_0 = 0U, GPIO_PORT_GROUP_1 = 1U, GPIO_PORT_GROUP_3 = 3U, GPIO_PORT_GROUP_10 = 10U, GPIO_PORT_GROUP_11 = 11U, GPIO_PORT_GROUP_16 = 16U, GPIO_PORT_GROUP_17 = 17U, GPIO_PORT_GROUP_21 = 21U, GPIO_PORT_GROUP_22 = 22U, GPIO_PORT_GROUP_42 = 42U, GPIO_PORT_GROUP_43 = 43U, GPIO_PORT_GROUP_44 = 44U, GPIO_PORT_GROUP_45 = 45U, GPIO_PORT_GROUP_JP0 = 46U, } GPIO_Port_en_t; typedef enum { GPIO_PIN_0 = 0X0U, GPIO_PIN_1, GPIO_PIN_2, GPIO_PIN_3, GPIO_PIN_4, GPIO_PIN_5, GPIO_PIN_6, GPIO_PIN_7, GPIO_PIN_8, GPIO_PIN_9, GPIO_PIN_10, GPIO_PIN_11, GPIO_PIN_12, GPIO_PIN_13, GPIO_PIN_14, GPIO_PIN_15, } GPIO_PIN_en_t; typedef enum { GPIO_Input_Buf_Close = 0U, GPIO_Input_Buf_Open, } GPIO_Buf_Control_en_t; typedef enum { GPIO_MODE_PORT = 0U, GPIO_MODE_ALTER_SOFTWARE, GPIO_MODE_ALTER_DIRECT, } GPIO_Mode_en_t; typedef enum { GPIO_ALTER_FUN_1 = 0U, GPIO_ALTER_FUN_2, GPIO_ALTER_FUN_3, GPIO_ALTER_FUN_4, GPIO_ALTER_FUN_5, GPIO_ALTER_FUN_6, } GPIO_Alter_Fuction_en_t; typedef enum { GPIO_DIR_OUT = 0U, GPIO_DIR_IN } GPIO_Direction_en_t; typedef enum { GPIO_Level_Low = 0U, GPIO_Level_High, } GPIO_Level_en_t; typedef enum { GPIO_PULL_NONE = 0U, GPIO_PULL_UP, GPIO_PULL_DOWN, } GPIO_Pull_en_t; typedef enum { GPIO_Drive_Slow = 0U, GPIO_Drive_Fast, } GPIO_Strength_en_t; typedef enum { GPIO_Char_TTL = 0U, GPIO_Char_CMOS1, GPIO_Char_Schmitt1, GPIO_Char_Schmitt4, } GPIO_Characteristics_en_t; typedef struct { GPIO_Port_en_t enGPIOPort; GPIO_PIN_en_t enGPIOPIN; GPIO_Strength_en_t enGPIODrive; GPIO_Characteristics_en_t enGPIOCharacter; GPIO_Pull_en_t enGPIOPull; GPIO_Level_en_t enGPIOOutputValue; GPIO_Mode_en_t enGPIOMode; GPIO_Direction_en_t enGPIODir; GPIO_Alter_Fuction_en_t enGPIOAltFun; } GPIO_Config_st_t; typedef enum { GPIO_WAKEUP_MODE = 0U, GPIO_SLEEP_MODE, } GPIO_Config_Mode_en_t; typedef enum { GPIO_WAKEUP_PIN_P0_0 = 0X06U, GPIO_WAKEUP_PIN_P0_1 = 0X01U, GPIO_WAKEUP_PIN_P0_2 = 0X02U, GPIO_WAKEUP_PIN_P0_3 = 0X03U, GPIO_WAKEUP_PIN_P0_4 = 0X06U, GPIO_WAKEUP_PIN_P0_5 = 0X07U, GPIO_WAKEUP_PIN_P0_6 = 0X08U, GPIO_WAKEUP_PIN_P0_7 = 0X09U, GPIO_WAKEUP_PIN_P0_8 = 0X0AU, GPIO_WAKEUP_PIN_P0_9 = 0X0BU, } GPIO_Wakeup_PIN_en_t; typedef enum { GPIO_WAKEUP_NONE = 0X0U, GPIO_WAKEUP_RISING_EDGE, GPIO_WAKEUP_FALLING_EDGE, GPIO_WAKEUP_BOTH_EDGE, GPIO_WAKEUP_LOW_LEVEL, GPIO_WAKEUP_HIGH_LEVEL, } GPIO_Wakeup_Trigger_Mode_en_t; /**/ void GPIO_Config(GPIO_Config_st_t *pstGPIOConfig); extern void GPIO_Init(GPIO_Config_Mode_en_t enGPIOConfigMode); extern void GPIO_Wakeup_PIN_Set(GPIO_Wakeup_PIN_en_t enGPIOWakeupPIN, GPIO_Wakeup_Trigger_Mode_en_t enGPIOTrigger); extern void Sys_Enter_Sleep_Mode(void); #endif