/*********************************************************************************************************************** * Copyright (C) All rights reserved. ***********************************************************************************************************************/ /*********************************************************************************************************************** * @file gpio.h * @brief This file implements device driver for GPIO module. * @version 1.0.0 * @date 2019/12/24 ***********************************************************************************************************************/ #ifndef GPIO_H #define GPIO_H #ifndef __CORE_CM0PLUS_H_GENERIC #include "common.h" #endif /*********************************************************************************************************************** Macro definitions (Register bit) ***********************************************************************************************************************/ /*********************************************************************************************************************** Macro definitions ***********************************************************************************************************************/ typedef enum { GPIO_WAKEUP_MODE = 0U, GPIO_SLEEP_MODE, } GPIO_Config_Mode_en_t; /*********************************************************************************************************************** Typedef definitions ***********************************************************************************************************************/ typedef enum { PORT0 = 0, PORT1, PORT2, PORT3, PORT4, PORT5, PORT6, PORT7, PORT8, PORT9, PORT10, PORT11, PORT12, PORT13, PORT14, PORT15, }PORT_TypeDef; typedef enum { PIN0 = 0, PIN1, PIN2, PIN3, PIN4, PIN5, PIN6, PIN7, }PIN_TypeDef; typedef enum { INPUT = 0, PULLUP_INPUT, TTL_INPUT, ANALOG_INPUT, OUTPUT, OPENDRAIN_OUTPUT, }PIN_ModeDef; #define PIN_MASK_0 ((uint8_t)(0x01)) /*!< Pin 0 selected */ #define PIN_MASK_1 ((uint8_t)(0x02)) /*!< Pin 1 selected */ #define PIN_MASK_2 ((uint8_t)(0x04)) /*!< Pin 2 selected */ #define PIN_MASK_3 ((uint8_t)(0x08)) /*!< Pin 3 selected */ #define PIN_MASK_4 ((uint8_t)(0x10)) /*!< Pin 4 selected */ #define PIN_MASK_5 ((uint8_t)(0x20)) /*!< Pin 5 selected */ #define PIN_MASK_6 ((uint8_t)(0x40)) /*!< Pin 6 selected */ #define PIN_MASK_7 ((uint8_t)(0x80)) /*!< Pin 7 selected */ /**************************************************************************************************************************************************** GPIO重映射 ****************************************************************************************************************************************************/ /*=================================================================================================================================================== PORT0 端口配置 ----------------------------------------------------------------------------------------------------------------------------------------------------- | 名称 | 端口 | 引脚 | 方向 | 初值 | 说明 ===================================================================================================================================================*/ #define ABS_N_In PORT0, PIN0 /* 62 IN 0 ABS输入*/ #define CHECK_KL15_In PORT0, PIN1 /* 61 IN 0 KL15电源检测 */ #define CAN0_TX PORT0, PIN2 /* 60 OUT 1 */ #define CAN0_RX PORT0, PIN3 /* 59 IN 0 */ #define LightModeCtrl PORT0, PIN4 /* 58 OUT 0 档位背光控制*/ #define LeftTurn_P_In PORT0, PIN5 /* 31 IN 0 左转向*/ #define HighBeam_P_In PORT0, PIN6 /* 30 IN 0 远光输入*/ /*=================================================================================================================================================== PORT1 端口配置 ----------------------------------------------------------------------------------------------------------------------------------------------------- | 名称 | 端口 | 引脚 | 方向 | 初值 | 说明 ===================================================================================================================================================*/ #define SEG_LCD_CSB PORT1, PIN0 /* 46 OUT 0 LCD_CSB*/ #define SEG_LCD_SCL PORT1, PIN1 /* 45 OUT 0 LCD_SCL*/ #define SEG_LCD_SD PORT1, PIN2 /* 44 OUT 0 LCD_SD*/ #define SEG_LCD_CSB1 PORT1, PIN3 /* 43 OUT 0 LCD_CSB1*/ #define IIC2_SDA_LDR PORT1, PIN4 /* 42 OUT 0 光敏SDA */ #define IIC2_SCL_LDR PORT1, PIN5 /* 41 OUT 0 光敏SCL*/ #define RevSpeed_In PORT1, PIN6 /* 40 IN 0 转速传感器信号输入*/ #define SEG_LCD_SCL1 PORT1, PIN7 /* 39 IN 0 LCD_SCL1*/ /*=================================================================================================================================================== PORT2 端口配置 ----------------------------------------------------------------------------------------------------------------------------------------------------- | 名称 | 端口 | 引脚 | 方向 | 初值 | 说明 ===================================================================================================================================================*/ #define AVREFP_In PORT2, PIN0 /* 56 IN 0 参考电压正(模拟输入)*/ #define AVREFM_In PORT2, PIN1 /* 55 IN 0 参考电压地(模拟输入)*/ #define CHECK_KL30_In PORT2, PIN2 /* 54 IN 0 KL30电压输入(模拟输入)*/ #define CHECK_KL15ad_In PORT2, PIN3 /* 53 IN 0 */ #define Fuel_Vref_In PORT2, PIN4 /* 52 IN 0 燃油电阻参考电压输入(模拟输入)*/ #define Fuel1_In PORT2, PIN5 /* 51 IN 0 燃油电阻1输入(模拟输入)*/ //#define NotUsed PORT2, PIN6 /* 50 IN 0 */ #define Fuel_Vcc_en PORT2, PIN7 /* 49 OUT 0 燃油电源控制*/ /*=================================================================================================================================================== PORT3 端口配置 ----------------------------------------------------------------------------------------------------------------------------------------------------- | 名称 | 端口 | 引脚 | 方向 | 初值 | 说明 ===================================================================================================================================================*/ #define TirePressure_N_In PORT3, PIN0 /* 32 IN 0 胎压*/ #define Backlight_P_In PORT3, PIN1 /* 21 IN 0 背光输入*/ /*=================================================================================================================================================== PORT4 端口配置 ----------------------------------------------------------------------------------------------------------------------------------------------------- | 名称 | 端口 | 引脚 | 方向 | 初值 | 说明 ===================================================================================================================================================*/ #define SWDIO PORT4, PIN0 /* 05 IN 0 */ #define L_BD433CTRL_OUT PORT4, PIN1 /* 04 OUT 1 L_BD433CTRL_OUT*/ #define AutoStarStop_N_In PORT4, PIN2 /* 03 IN 0 自动启停*/ #define OBD_N_In PORT4, PIN3 /* 02 IN 0 OBD*/ /*=================================================================================================================================================== PORT5 端口配置 ----------------------------------------------------------------------------------------------------------------------------------------------------- | 名称 | 端口 | 引脚 | 方向 | 初值 | 说明 ===================================================================================================================================================*/ #define PWM_BL PORT5, PIN0 /* 33 OUT 0 背光PWM*/ #define OilPressure_N_In PORT5 , PIN1 /* 34 IN 0 机油压力*/ #define RightTurn_P_In PORT5, PIN2 /* 35 IN 0 右转输入*/ #define VCC5V_LED_EN PORT5, PIN3 /* 36 OUT 1 VCC5V LED AW21036供电*/ #define VCC5V_AW39112DNR_EN PORT5, PIN4 /* 37 OUT 1 VCC5V_光敏使能*/ #define SEG_LCD_SD1 PORT5, PIN5 /* 38 OUT 0 LCD_SD1*/ /*=================================================================================================================================================== PORT6 端口配置 ----------------------------------------------------------------------------------------------------------------------------------------------------- | 名称 | 端口 | 引脚 | 方向 | 初值 | 说明 ===================================================================================================================================================*/ #define MCU_TOUCH_SCL PORT6, PIN0 /* 17 OUT 1 触摸SCL*/ #define MCU_TOUCH_SDA PORT6, PIN1 /* 18 OUT 1 触摸SDA*/ //#define NotUsed PORT6, PIN2 /* 19 IN 0 */ //#define NotUsed PORT6, PIN3 /* 20 IN 0 */ /*=================================================================================================================================================== PORT7 端口配置 ----------------------------------------------------------------------------------------------------------------------------------------------------- | 名称 | 端口 | 引脚 | 方向 | 初值 | 说明 ===================================================================================================================================================*/ #define IIC_SCL_24G16 PORT7, PIN0 /* 29 OUT 1 EErom_SCL*/ #define IIC_SDA_24G16 PORT7, PIN1 /* 28 OUT 1 EErom_SDA*/ #define LightVehTensCtrl PORT7, PIN2 /* 27 OUT 0 车速十位*/ #define SEG_LED_CSB PORT7, PIN3 /* 26 OUT 0 SDB*/ #define SEG_LED_SD PORT7, PIN4 /* 25 OUT 0 SDA*/ #define SEG_LED_SCL PORT7, PIN5 /* 24 OUT 0 SCL*/ #define LightVehHundredsCtrl PORT7, PIN6 /* 23 OUT 0 车速百位*/ #define VCC3V3_TOUCH_EN PORT7, PIN7 /* 22 OUT 1 3V3触摸使能*/ /*=================================================================================================================================================== PORT12 端口配置 ----------------------------------------------------------------------------------------------------------------------------------------------------- | 名称 | 端口 | 引脚 | 方向 | 初值 | 说明 ===================================================================================================================================================*/ #define CAN0_STB PORT12, PIN0 /* 01 OUT 1 */ #define MCU_XI PORT12, PIN1 /* 11 IN 0 */ #define MCU_XO PORT12, PIN2 /* 10 OUT 1 */ #define X32768_IN PORT12, PIN3 /* 08 IN 0 */ #define X32768_OUT PORT12, PIN4 /* 07 OUT 1 */ /*=================================================================================================================================================== PORT13 端口配置 ----------------------------------------------------------------------------------------------------------------------------------------------------- | 名称 | 端口 | 引脚 | 方向 | 初值 | 说明 ===================================================================================================================================================*/ //#define NotUsed PORT13, PIN0 /* 57 IN 0 */ #define MCU_TOUCH_OUT PORT13, PIN6 /* 16 OUT 1 触摸_INT*/ #define SWCLK PORT13, PIN7 /* 09 IN 0 */ /*=================================================================================================================================================== PORT14 端口配置 ----------------------------------------------------------------------------------------------------------------------------------------------------- | 名称 | 端口 | 引脚 | 方向 | 初值 | 说明 ===================================================================================================================================================*/ #define TLight_OUT PORT14, PIN0 /* 64 OUT 0 T指示灯(W)_OUT*/ #define LightBATTCtrl PORT14, PIN1 /* 63 OUT 0 电压背光控制*/ //#define NotUsed PORT14, PIN6 /* 47 IN 0 */ //#define NotUsed PORT14, PIN7 /* 48 IN 0 */ /*********************************************************************************************************************** Global functions ***********************************************************************************************************************/ void GPIO_Output_Enable(__IO uint8_t *port, uint8_t pinMsk); void GPIO_Input_Enable(__IO uint8_t *port, uint8_t pinMsk); void GPIO_PullUp_Enable(__IO uint8_t *port, uint8_t pinMsk); void GPIO_PullUp_Disable(__IO uint8_t *port, uint8_t pinMsk); void GPIO_Nch_OpenDrain(__IO uint8_t *port, uint8_t pinMsk); void GPIO_Ttl_Input(__IO uint8_t *port, uint8_t pinMsk); void GPIO_Set_Value(__IO uint8_t *port, uint8_t value); uint8_t GPIO_Get_Value(__IO uint8_t *port); void PORT_Init(PORT_TypeDef PORTx,PIN_TypeDef PINx,PIN_ModeDef MODEx); void PORT_SetBit(PORT_TypeDef PORTx,PIN_TypeDef PINx); void PORT_ClrBit(PORT_TypeDef PORTx,PIN_TypeDef PINx); void PORT_ToggleBit(PORT_TypeDef PORTx,PIN_TypeDef PINx); uint8_t PORT_GetBit(PORT_TypeDef PORTx,PIN_TypeDef PINx); void GPIO_Init(GPIO_Config_Mode_en_t enGPIOConfigMode); #endif