| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #include "key_io.h"
- #include "gd32e230_gpio.h"
- #include "gd32e230_rcu.h"
- #include "Timer.h"
- #define KEY_IO_RCU RCU_GPIOB
- #define KEY_IO_IO GPIOB
- #define KEY_IO_A_RST GPIO_PIN_9
- #define KEY_IO_A_TEST GPIO_PIN_8
- #define KEY_IO_B_RST GPIO_PIN_7
- #define KEY_IO_B_TEST GPIO_PIN_6
- #define KEY_IO_RST GPIO_PIN_2
- #define KEY_IO_TEST GPIO_PIN_1
- #define KEY_DETECTION GPIO_PIN_5
- void key_io_init(void * value)
- {
- (void)(value);
- rcu_periph_clock_enable(KEY_IO_RCU);
- // gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_A_RST);
- // gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_A_TEST);
- // gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_B_RST);
- // gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_B_TEST);
- gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_RST);
- gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_TEST);
- gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_DETECTION);
- }
- bool get_rst()
- {
- FlagStatus status = SET;
- bool ret = false;
- uint32_t count = 100;
- if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_RST)) == RESET)
- {
- while(count--);
- if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_RST)) == RESET)
- {
- ret = true;
- }
- }
- return ret;
- }
- bool get_test()
- {
- FlagStatus status = SET;
- bool ret = false;
- uint32_t count = 100;
- if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_TEST)) == RESET)
- {
- while(count--);
- if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_TEST)) == RESET)
- {
- ret = true;
- }
- }
- return ret;
- }
- bool get_detection()
- {
- FlagStatus status = SET;
- bool ret = false;
- if((status = gpio_input_bit_get(KEY_IO_IO,KEY_DETECTION)) == RESET)
- ret = true;
- return ret;
- }
|