#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); } uint8_t get_rst() { uint8_t ret = 0; FlagStatus status = SET; //bool ret = false; if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_RST)) == RESET) { ret = 1; } return ret; } uint8_t get_test() { FlagStatus status = SET; uint8_t ret = 0; if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_TEST)) == RESET) { ret = 1; } return ret; } uint8_t get_detection() { FlagStatus status = SET; uint8_t ret = 0; if((status = gpio_input_bit_get(KEY_IO_IO,KEY_DETECTION)) == RESET) ret = 1; return ret; }