gpio.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef _GPIO_H__
  2. #define _GPIO_H__
  3. #include "gd32f3x0.h"
  4. #include "gd32f3x0_libopt.h"
  5. #include "bsp/shark_bsp.h"
  6. /*switch for temperature sensers */
  7. #define TEMP_OPEN(x) gpio_bit_write(GPIOF,GPIO_PIN_1,(bit_status)(x))
  8. /*switch for small current aux */
  9. #define AUX_VOL_OPEN(x) gpio_bit_write(GPIOB,GPIO_PIN_2,(bit_status)(x))
  10. /*switch for larger current DCDC */
  11. #define DCDC_VOL_OPEN(x) gpio_bit_write(GPIOA,GPIO_PIN_11,(bit_status)(x))
  12. /* DCDC output power good detect */
  13. #define DCDC_POWER_GOOD() gpio_input_bit_get(GPIOF, GPIO_PIN_7)
  14. /*switch for IR uart0 */
  15. #define UART0_IR_EN(x) gpio_bit_write(GPIOC,GPIO_PIN_14,(bit_status)(x))
  16. /*switch for IR uart1 */
  17. #define UART1_IR_EN(x) gpio_bit_write(GPIOF,GPIO_PIN_0,(bit_status)(x))
  18. /*detect for charger in/out */
  19. #define IS_CHARGER_IN() !gpio_input_bit_get(GPIOB,GPIO_PIN_10)
  20. /*power switch for cs110, low active */
  21. #define CS1180_PWR_ENABLE(x) gpio_bit_write(GPIOB,GPIO_PIN_12, x==1?RESET:SET)
  22. /*detect for CS1180 is ready */
  23. #define IS_CS1180_READY() !!gpio_input_bit_get(GPIOA, GPIO_PIN_0)
  24. /*detect hall 1&2 */
  25. #define IS_HALL1_DETECTED() !gpio_input_bit_get(GPIOC, GPIO_PIN_15)
  26. #define IS_HALL2_DETECTED() !gpio_input_bit_get(GPIOC, GPIO_PIN_13)
  27. static __inline__ void gpio_mode_analog_input(uint32_t gpio_periph, uint32_t pin){
  28. gpio_mode_set(gpio_periph, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, pin);
  29. }
  30. static __inline__ void gpio_mode_input(uint32_t gpio_periph, uint32_t pull_up_down, uint32_t pin){
  31. gpio_mode_set(gpio_periph, GPIO_MODE_INPUT, pull_up_down, pin);
  32. }
  33. static __inline__ void gpio_mode_output(uint32_t gpio_periph, uint32_t pull_up_down, uint8_t otype, uint32_t speed, uint32_t pin){
  34. gpio_mode_set(gpio_periph, GPIO_MODE_OUTPUT, pull_up_down, pin);
  35. gpio_output_options_set(gpio_periph, otype, speed, pin);
  36. }
  37. static __inline__ void gpio_mode_af(uint32_t gpio_periph, uint32_t pull_up_down, uint32_t pin){
  38. gpio_mode_set(gpio_periph, GPIO_MODE_AF, pull_up_down, pin);
  39. }
  40. #endif /* _GPIO_H__ */