cadence_sensor.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef __CADENCE_SENSOR_H
  2. #define __CADENCE_SENSOR_H
  3. #include "stm32f1xx_hal.h"
  4. #define CADENCE_1_Pin GPIO_PIN_3
  5. #define CADENCE_1_GPIO_Port GPIOB
  6. #define CADENCE_2_Pin GPIO_PIN_15
  7. #define CADENCE_2_GPIO_Port GPIOA
  8. typedef enum
  9. {
  10. MC_Cadence_Forward = 0x00,
  11. MC_Cadence_Backward = 0x01,
  12. MC_Cadence_Stop = 0x02
  13. }MC_CadenceDir_Struct_t;
  14. //踏频检测结果
  15. typedef struct
  16. {
  17. uint8_t Cadence_Data; //踏频值
  18. MC_CadenceDir_Struct_t Cadence_Dir; //踏频方向
  19. TrueOrFalse_Flag_Struct_t IsStopFlag; //踏频停止标志
  20. uint32_t TrigCount; //正向踩踏信号计数
  21. uint16_t torqueByCadence; //经过踏频信号滤波处理的力矩值
  22. }MC_CadenceResult_Struct_t;
  23. //踏频传感器输出状态
  24. typedef struct
  25. {
  26. uint8_t HallGropuStatus;
  27. uint8_t HallGropuStatus_Old;
  28. }MC_CadenceSensorStatus_Struct_t;
  29. extern const uint8_t ForwardDir_EncoderData[4];
  30. extern const uint8_t BackwardDir_EncoderData[4];
  31. //踏频值滤波缓存
  32. extern MC_CadenceResult_Struct_t MC_CadenceResult;
  33. extern uint16_t MC_Cadence_Array[10];
  34. extern uint8_t Cadence_ReadHallState(void);
  35. extern void CadenceSensor_GPIO_Init(void);
  36. extern void CadenceSensor_Process(MC_CadenceResult_Struct_t* p_MC_CadenceResult, uint16_t StopDelayTime, uint8_t StarCount, TrueOrFalse_Flag_Struct_t UpSlopeFlag);
  37. #endif