P8UWaterPlasticIES4G/hardinterface/inc/UWater_gpio_driver.h

125 lines
4.1 KiB
C

/************************************************************************************
* @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 */