#ifndef _GPIO_H__ #define _GPIO_H__ #include "gd32f3x0.h" #include "gd32f3x0_libopt.h" /*switch for temperature sensers */ #define TEMP_OPEN(x) gpio_bit_write(GPIOF,GPIO_PIN_1,(bit_status)(x)) /*switch for small current aux */ #define AUX_VOL_OPEN(x) gpio_bit_write(GPIOB,GPIO_PIN_2,(bit_status)(x)) /*switch for larger current DCDC */ #define DCDC_VOL_OPEN(x) gpio_bit_write(GPIOA,GPIO_PIN_11,(bit_status)(x)) /* DCDC output power good detect */ #define DCDC_POWER_GOOD() gpio_input_bit_get(GPIOF, GPIO_PIN_7) /*switch for IR uart0 */ #define UART0_IR_EN(x) gpio_bit_write(GPIOC,GPIO_PIN_14,(bit_status)(x)) /*switch for IR uart1 */ #define UART1_IR_EN(x) gpio_bit_write(GPIOF,GPIO_PIN_0,(bit_status)(x)) /*detect for charger in/out */ #define IS_CHARGER_IN() !gpio_input_bit_get(GPIOB,GPIO_PIN_10) /*power switch for cs110, low active */ #define CS1180_PWR_ENABLE(x) gpio_bit_write(GPIOB,GPIO_PIN_12, x==1?RESET:SET) /*detect for CS1180 is ready */ #define IS_CS1180_READY() !!gpio_input_bit_get(GPIOA, GPIO_PIN_0) /*detect hall 1&2 */ #define IS_HALL1_DETECTED() !gpio_input_bit_get(GPIOC, GPIO_PIN_15) #define IS_HALL2_DETECTED() !gpio_input_bit_get(GPIOC, GPIO_PIN_13) static __inline__ void gpio_mode_input(uint32_t gpio_periph, uint32_t pull_up_down, uint32_t pin){ gpio_mode_set(gpio_periph, GPIO_MODE_INPUT, pull_up_down, pin); } static __inline__ void gpio_mode_output(uint32_t gpio_periph, uint32_t pull_up_down, uint8_t otype, uint32_t speed, uint32_t pin){ gpio_mode_set(gpio_periph, GPIO_MODE_OUTPUT, pull_up_down, pin); gpio_output_options_set(gpio_periph, otype, speed, pin); } static __inline__ void gpio_mode_af(uint32_t gpio_periph, uint32_t pull_up_down, uint32_t pin){ gpio_mode_set(gpio_periph, GPIO_MODE_AF, pull_up_down, pin); } #endif /* _GPIO_H__ */