/* ********************************************************************************************************* * File Name : if_gpio.h * Auther : ADAYO Sam * Date : 2021.11 * Description : * Version : ********************************************************************************************************* */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __gpio_H #define __gpio_H /* ********************************************************************************************************* * INCLUDE FILES ********************************************************************************************************* */ /* ********************************************************************************************************* * MACRO'S ********************************************************************************************************* */ /* ********************************************************************************************************* * LOCAL DATA TYPES ********************************************************************************************************* */ /* ********************************************************************************************************* * GLOBAL VARIABLES ********************************************************************************************************* */ /*Defines the Interrupt Numbers definitions*/ typedef enum { EXTI_CH_ACC=0, EXTI_CH_MPU, EXTI_CH_GSENSOR_INT2, EXTI_CH_WIFI, EXTI_CH_BCALL, EXTI_CH_CANRX0, EXTI_CH_CANRX1, EXTI_CH_CANRX2, EXTI_CH_MAXNUM }exti_channel_t; /* GPIO level high and low state. */ typedef enum { GPIO_LEVEL_LOW=0, GPIO_LEVEL_HIGH, GPIO_LEVEL_INVALID }gpio_level_t; typedef enum { GPIO_INPUT = 0, GPIO_OUTPUT, GPIO_LEVEL_UNSPECIFIED }gpio_direction_t; /* GPIO function list */ #if 0 typedef enum { IF_GPIO_TFT_RESET=0,//PTD1 IF_GPIO_TFT_SLEEP,//PTE5 IF_GPIO_PWM_A,//PTE8 IF_GPIO_PWM_D,//PTB5 IF_GPIO_PWM_B,//PTB4 IF_GPIO_PWM_C,//PTC3 IF_GPIO_ACC_DET,//PTE11 IF_GPIO_MOTOR_CLOSE,//PTC0 IF_GPIO_VERDET_3,//PTC15 IF_GPIO_VERDET_2,//PTC14 IF_GPIO_VERDET_1,//PTB3 IF_GPIO_VERDET_0,//PTB2 IF_GPIO_LVDS_RESET,//PTE7 IF_GPIO_WARP_IRQ,//PTB13 IF_GPIO_POWER_KEY,//PTD3 IF_GPIO_EEP_WP,//PTC7 IF_GPIO_CAN0_STB,//PTC13 IF_GPIO_CAN1_STB,//PTE6 IF_GPIO_CAN1_EN,//PTE2 IF_GPIO_CAN1_ERR,//PTA11 IF_GPIO_9287_PWDN,//PTA10 IF_GPIO_9287_ERR,//PTE1 IF_GPIO_9287_LOCK,//PTE0 IF_GPIO_MAIN_12V_POWER,//PTC8 IF_GPIO_MAIN_5V_POWER,//PTE14 IF_GPIO_ACC_POWER,//PTC9 IF_GPIO_MPU_RESET,//PTB10 IF_GPIO_TFT_BL,//PTB13 IF_GPIO_MAX_NUMBER }gpio_num_t; #else typedef enum { IF_GPIO_CAN0_STB=0,//PTC13 IF_GPIO_CAN0_EN, IF_GPIO_CAN0_ERR, IF_GPIO_MAX_NUMBER }gpio_num_t; #endif #define IO_ACC_DET_GPIO PTE #define ACC_DET_PORT_PIN 11 #define IO_CAN0_RX_GPIO PTE #define CAN0_RX_PORT_PIN 4 /* ********************************************************************************************************* * FUNCTION PROTOTYPES ********************************************************************************************************* */ extern void IF_GPIO_vInit (void); extern void IF_GPIO_vDeinit (void); extern void IF_GPIO_vSetDirection(gpio_num_t GPIO_Number,gpio_direction_t direction); extern void IF_GPIO_vSetLow(gpio_num_t GPIO_Number); extern void IF_GPIO_vSetHigh (gpio_num_t GPIO_Number); extern gpio_level_t IF_GPIO_GetStatus (gpio_num_t GPIO_Number); extern void IF_GPIO_SleepPinDisable(void); extern void IF_GPIO_SetCanInt(void); extern void IF_GPIO_SetAccInt(void); extern void IF_GPIO_vToggle(gpio_num_t GPIO_Number); extern void IF_EXTI_vEnable(exti_channel_t irqNumber); extern void IF_EXTI_vDisable (exti_channel_t irqNumber); extern void IF_EXTI_vInit (void); #endif /* End of module include. */ /**********************************************END OF FILE**********************************************/