key_io.c 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #include "key_io.h"
  2. #include "gd32e230_gpio.h"
  3. #include "gd32e230_rcu.h"
  4. #include "Timer.h"
  5. #define KEY_IO_RCU RCU_GPIOB
  6. #define KEY_IO_IO GPIOB
  7. #define KEY_IO_A_RST GPIO_PIN_9
  8. #define KEY_IO_A_TEST GPIO_PIN_8
  9. #define KEY_IO_B_RST GPIO_PIN_7
  10. #define KEY_IO_B_TEST GPIO_PIN_6
  11. #define KEY_IO_RST GPIO_PIN_2
  12. #define KEY_IO_TEST GPIO_PIN_1
  13. #define KEY_DETECTION GPIO_PIN_5
  14. void key_io_init(void * value)
  15. {
  16. (void)(value);
  17. rcu_periph_clock_enable(KEY_IO_RCU);
  18. // gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_A_RST);
  19. // gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_A_TEST);
  20. // gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_B_RST);
  21. // gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_B_TEST);
  22. gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_RST);
  23. gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_TEST);
  24. gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_DETECTION);
  25. }
  26. uint8_t get_rst()
  27. {
  28. uint8_t ret = 0;
  29. FlagStatus status = SET;
  30. //bool ret = false;
  31. if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_RST)) == RESET)
  32. {
  33. ret = 1;
  34. }
  35. return ret;
  36. }
  37. uint8_t get_test()
  38. {
  39. FlagStatus status = SET;
  40. uint8_t ret = 0;
  41. if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_TEST)) == RESET)
  42. {
  43. ret = 1;
  44. }
  45. return ret;
  46. }
  47. uint8_t get_detection()
  48. {
  49. FlagStatus status = SET;
  50. uint8_t ret = 0;
  51. if((status = gpio_input_bit_get(KEY_IO_IO,KEY_DETECTION)) == RESET)
  52. ret = 1;
  53. return ret;
  54. }