/************************************************************************************ * @Copyright (c) :(C)2020, Qindao ieslab Co., Ltd * @FileName :hc32_gpio_driver.h * @Author :QDIES PLATFORM TEAM * @Version :V1.0 * @Date :2020-07-01 * @Description : ************************************************************************************/ #ifndef __UWater_GPIO_DRIVER_H #define __UWater_GPIO_DRIVER_H #ifdef __cplusplus extern "C" { #endif #include "ddl.h" #include "type.h" /*****************************变量定义***************************************/ //GPIO时钟使能 #define MCU_GPIO_CLK_ENABLE() SetBit((uint32_t)(&(M0P_SYSCTRL->PERI_CLKEN0)), SysctrlPeripheralGpio, TRUE) //GPIO时钟禁止 #define MCU_GPIO_CLK_DISABLE() SetBit((uint32_t)(&(M0P_SYSCTRL->PERI_CLKEN0)), SysctrlPeripheralGpio, FALSE) #define EN_IR_PWR_PORT (GpioPortB) #define EN_IR_PWR_PIN (GpioPin9) //// GPIOEx_Get_Port_Index GPIOEx_Get Port Index //typedef enum en_gpio_mode //{ // GPIO_MODE_INPUT = 0u, ///< GPIO 输入 // GPIO_MODE_RISING = 1u, // GPIO_MODE_FALLING = 2u, // GPIO_MODE_BOTHEDGE = 3u, // GPIO_MODE_OUTPUT_OD = 4u, ///< GPIO 开漏输出 // GPIO_MODE_OUTPUT_PP = 5u, ///< GPIO 推挽输出 // GPIO_MODE_ANALOG = 6u, ///模拟 // //}GPIO_MODE_t; ////GPIO Pull-Up or Pull-Down Activation //typedef enum en_gpio_pupd //{ // GPIO_NOPULL = 0u, ///< GPIO无上下拉 // GPIO_PULLUP = 1u, ///< GPIO上拉 // GPIO_PULLDOWN = 2u //< GPIO下拉 //}GPIO_PUPD_t; //// GPIO_pins GPIO pins //typedef enum ex_gpio_pin //{ // GPIO_PIN_0 = 0, // Pin 0 selected // GPIO_PIN_1, // Pin 1 selected // GPIO_PIN_2, // Pin 2 selected // GPIO_PIN_3, // Pin 3 selected // GPIO_PIN_4, // Pin 4 selected // GPIO_PIN_5, // Pin 5 selected // GPIO_PIN_6, // Pin 6 selected // GPIO_PIN_7, // Pin 7 selected // GPIO_PIN_8, // Pin 8 selected // GPIO_PIN_9, // Pin 9 selected // GPIO_PIN_10, // Pin 10 selected // GPIO_PIN_11, // Pin 11 selected // GPIO_PIN_12, // Pin 12 selected // GPIO_PIN_13, // Pin 13 selected // GPIO_PIN_14, // Pin 14 selected // GPIO_PIN_15 // Pin 15 selected //}GPIO_PIN_t; ////#define GPIO_PIN_All ((u16)0xFFFF) // All pins selected ////#define STM32_GPIO_PIN_MASK ((u32)0x0000FFFF) // PIN mask for assert test //typedef enum ex_gpio_drv //{ // GpioDrvHigh = 0u, ///< GPIO高驱动能力 // GpioDrvLow = 1u, ///< GPIO低驱动能力 //}GPIO_DRV_t; ////GPIO Init structure definition //typedef struct //{ // // GPIO_PIN_t Pin; // Specifies the GPIO pins to be configured.This parameter can be any value of @ref GPIO_pins // GPIO_MODE_t Mode; //Specifies the operating mode for the selected pins.This parameter can be a value of @ref GPIO_mode // GPIO_PUPD_t Pull; // Specifies the Pull-up or Pull-Down activation for the selected pins.This parameter can be a value of @ref GPIO_pull // GPIO_DRV_t Drv; // //}GPIO_InitTypeDef; //typedef enum en_gpio_type //{ // GpioA = 0x00u, ///< GPIO PORT A // GpioB = 0x40u, ///< GPIO PORT B // GpioC = 0x80u, ///< GPIO PORT C // GpioD = 0xc0u, ///< GPIO PORT D // GpioE = 0x1000u, ///< GPIO PORT E // GpioF = 0x1040u, ///< GPIO PORT F //}GPIO_TypeDef; typedef en_gpio_port_t GPIO_TypeDef; typedef en_gpio_pin_t GPIO_PIN_t; /*****************************外部接口***************************************/ //void MCU_GPIO_Init(GPIO_TypeDef GPIOx, GPIO_InitTypeDef *GPIO_Init); //void MCU_GPIO_DeInit(GPIO_TypeDef GPIOx, GPIO_PIN_t GPIO_Pin); void GpioInit(void); GPIO_PinState GPIO_ReadPin(GPIO_TypeDef GPIOx, GPIO_PIN_t GPIO_Pin); void GPIO_WritePin(GPIO_TypeDef GPIOx, GPIO_PIN_t GPIO_Pin, GPIO_PinState PinState); void GPIO_TogglePin(GPIO_TypeDef GPIOx, GPIO_PIN_t GPIO_Pin); void GPIO_LockPin(GPIO_TypeDef GPIOx, GPIO_PIN_t GPIO_Pin); #ifdef __cplusplus } #endif #endif /* __STM32L4xx_GPIO_DRIVER_H */