key.h 977 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef _KEY_H_
  2. #define _KEY_H_
  3. #include "../User/gd32f10x_it.h"
  4. #include "timeout.h"
  5. #define KEY2_DOWN() (gpio_input_bit_get(GPIOB,GPIO_PIN_0) == RESET) // 按键按下
  6. #define KEY2_UP() (gpio_input_bit_get(GPIOB,GPIO_PIN_0) == SET) // 按键抬起
  7. #define KEY3_DOWN() (gpio_input_bit_get(GPIOB,GPIO_PIN_1) == RESET) // 按键按下
  8. #define KEY3_UP() (gpio_input_bit_get(GPIOB,GPIO_PIN_1) == SET) // 按键抬起
  9. #define KEY4_DOWN() (gpio_input_bit_get(GPIOB,GPIO_PIN_2) == RESET) // 按键按下
  10. #define KEY4_UP() (gpio_input_bit_get(GPIOB,GPIO_PIN_2) == SET) // 按键抬起
  11. enum {
  12. KEY2_VAL = 0x11,
  13. KEY3_VAL = 0x12,
  14. KEY4_VAL = 0x13,
  15. };
  16. typedef struct _key_init_{
  17. uint8_t keyVal; // 键值
  18. uint8_t keyPress; // 按下 抬起 无操作
  19. uint8_t count; // 时间内按下的次数
  20. timeout_t timer; // 时间
  21. }__attribute__((packed))KeyInfo;
  22. extern KeyInfo g_keyinfo;
  23. extern void key_init(void);
  24. extern uint8_t key_scan(void);
  25. extern void key_opteration(void);
  26. #endif