key_driver.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef __KEY_DRIVERS_H
  2. #define __KEY_DRIVERS_H
  3. #include "stm32f1xx_hal.h"
  4. //开关类型
  5. typedef enum SwitchType
  6. {
  7. NormallyOpen = 0U,
  8. NormallyOff,
  9. }SwitchType_Struct_t;
  10. //GPIO输入检测函数
  11. typedef struct //缓冲区各变量,用于相关函数的参数
  12. {
  13. GPIO_TypeDef* GPIOx; //GPIOx
  14. uint16_t GPIO_Pin; //GPIO_PIN_x
  15. SwitchType_Struct_t SwitchType; //开关类型
  16. uint8_t Trg; //按键触发标志
  17. uint8_t Cont; //计数
  18. uint8_t PressFlasg; //按键按下标识
  19. uint32_t TimeCnt; //按键长按计时
  20. uint32_t AutoReleaseTimeCnt;//自动释放计时
  21. }Key_TypeDef;
  22. extern TrueOrFalse_Flag_Struct_t IsGearSensorTrig_Flag;//变速传感器标志
  23. extern TrueOrFalse_Flag_Struct_t IsBreakTrig_Flag;//刹车标志
  24. extern Key_TypeDef Key_Break_Left;
  25. extern Key_TypeDef Key_Break_Right;
  26. extern Key_TypeDef Key_GearSensor;
  27. //按键GPIO初始化
  28. void KeyInitial(void);
  29. //刹车检测函数
  30. void Break_Check(TrueOrFalse_Flag_Struct_t* BreakFlag);
  31. //GearSensor检测函数
  32. void GearSensor_Check(TrueOrFalse_Flag_Struct_t *Flag);
  33. #endif