gpio.c 1000 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "bsp/gpio.h"
  2. #include "libs/utils.h"
  3. #define IR2136S_Enable_pin 0
  4. /*
  5. * gpio.c
  6. * all pins used as gpio(in/out/irq) must be init&accessed here
  7. */
  8. const static gpio_pin_config_t _pins[] = {
  9. #ifdef GD32_FOC_DEMO
  10. [IR2136S_Enable_pin] = {GPIOA, GPIO_PIN_12, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, 0},
  11. #endif
  12. };
  13. void gpio_pin_init(void){
  14. rcu_periph_clock_enable(RCU_GPIOA);
  15. rcu_periph_clock_enable(RCU_GPIOB);
  16. rcu_periph_clock_enable(RCU_GPIOC);
  17. rcu_periph_clock_enable(RCU_GPIOD);
  18. rcu_periph_clock_enable(RCU_GPIOF);
  19. rcu_periph_clock_enable(RCU_AF);
  20. for (int i = 0; i < ARRAY_SIZE(_pins); i++){
  21. if (_pins[i].init_value != -1){
  22. gpio_bit_write(_pins[i].group, _pins[i].pin, (bit_status)_pins[i].init_value);
  23. }
  24. gpio_init(_pins[i].group, _pins[i].mode, _pins[i].speed, _pins[i].pin);
  25. }
  26. }
  27. bool gpio_get_brake(void) {
  28. return 0;
  29. }
  30. void gpio_ir2136_enable(bool enable) {
  31. gpio_bit_write(_pins[IR2136S_Enable_pin].group, _pins[IR2136S_Enable_pin].pin, (enable)?SET:RESET);
  32. }