#ifndef __CADENCE_SENSOR_H #define __CADENCE_SENSOR_H #include "stm32f1xx_hal.h" #define CADENCE_1_Pin GPIO_PIN_3 #define CADENCE_1_GPIO_Port GPIOB #define CADENCE_2_Pin GPIO_PIN_15 #define CADENCE_2_GPIO_Port GPIOA typedef enum { MC_Cadence_Forward = 0x00, MC_Cadence_Backward = 0x01, MC_Cadence_Stop = 0x02 }MC_CadenceDir_Struct_t; //踏频检测结果 typedef struct { uint8_t Cadence_Data; //踏频值 MC_CadenceDir_Struct_t Cadence_Dir; //踏频方向 TrueOrFalse_Flag_Struct_t IsStopFlag; //踏频停止标志 uint32_t TrigCount; //正向踩踏信号计数 uint16_t torqueByCadence; //经过踏频信号滤波处理的力矩值 }MC_CadenceResult_Struct_t; //踏频传感器输出状态 typedef struct { uint8_t HallGropuStatus; uint8_t HallGropuStatus_Old; }MC_CadenceSensorStatus_Struct_t; extern const uint8_t ForwardDir_EncoderData[4]; extern const uint8_t BackwardDir_EncoderData[4]; //踏频值滤波缓存 extern MC_CadenceResult_Struct_t MC_CadenceResult; extern uint16_t MC_Cadence_Array[10]; extern uint8_t Cadence_ReadHallState(void); extern void CadenceSensor_GPIO_Init(void); //适用双通道输出传感器,根据相位判断方向 extern void CadenceSensor_Process1(MC_CadenceResult_Struct_t* p_MC_CadenceResult, uint16_t StopDelayTime, uint8_t StarCount, TrueOrFalse_Flag_Struct_t UpSlopeFlag); //适用频率和方向输出传感器, extern void CadenceSensor_Process2(MC_CadenceResult_Struct_t* p_MC_CadenceResult, uint16_t StopDelayTime, uint8_t StarCount, TrueOrFalse_Flag_Struct_t UpSlopeFlag); #endif