125 lines
4.1 KiB
C
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 */
|
|
|