#ifndef __SPEED_SENSOR__H #define __SPEED_SENSOR__H #include "stm32f1xx_hal.h" #define SPEED_SENSOR_Pin GPIO_PIN_2 #define SPEED_SENSOR_GPIO_Port GPIOD #define SPEED_SENSOR_EXTI_IRQn EXTI2_IRQn typedef struct { uint16_t Speed_Data; //车速,放大100倍 TrueOrFalse_Flag_Struct_t IsStopFlag; //停止标志 TrueOrFalse_Flag_Struct_t IsTrigFlag; //信号触发标志 uint32_t TrigSysTime; //信号触发时刻时钟 uint32_t DiffTime_ms; //两次信号触发间隔时间 uint32_t WheelTurnCount; //车轮圈数 }MC_SpeedSensorData_Struct_t; extern MC_SpeedSensorData_Struct_t MC_SpeedSensorData; extern uint16_t MC_Speed_Array[10]; extern void SpeedSensor_GPIO_Init(void); void SpeedSensor_Process(MC_SpeedSensorData_Struct_t* p_MC_SpeedSensorData, uint16_t* AvgResult, uint8_t WheelSize, uint8_t Poles); extern void SpeedCal_ByCadence(uint16_t CadenceData, uint16_t* SpeedData, uint8_t T_Front, uint8_t T_Tail, uint16_t WheelSize, uint16_t* BikeSpeed); extern void SpeedCal_ByCommunication(MC_SpeedSensorData_Struct_t* p_MC_SpeedSensorData, uint16_t* AvgResult, uint8_t WheelSize); #endif