#ifndef __HALL_SENSOR_H #define __HALL_SENSOR_H #include "stm32f1xx_hal.h" #define HALL_C_Pin GPIO_PIN_9 #define HALL_C_GPIO_Port GPIOC #define HALL_A_Pin GPIO_PIN_7 #define HALL_A_GPIO_Port GPIOC #define HALL_B_Pin GPIO_PIN_8 #define HALL_B_GPIO_Port GPIOC #define ANGLE_60D 10922 #define ANGLE_120D 21844 #define HALL_ORIGIN (int8_t)0 //#define HALL_ORIGIN (int16_t)(-180) //霍尔传感器检测结果 typedef struct { uint32_t PWM_NumCnt; // PWM计数 uint16_t Delta_Angle; // 步进角 uint16_t Delta_AngleSum; // 67.5度内步进角累加和 uint16_t SVM_Angle; // 电角度 TrueOrFalse_Flag_Struct_t IsStopFlag; // 停止标志 TrueOrFalse_Flag_Struct_t InverterExistFlag; uint16_t motorspeed; uint16_t motorspeed_RCFlt; TrueOrFalse_Flag_Struct_t BackwardFlag; }MC_HallSensorData_Struct_t; //霍尔传感器输出状态 typedef struct { uint8_t HallGropuStatus; uint8_t HallGropuStatus_Old; }MC_HallSensorStatus_Struct_t; extern const uint8_t HallSensorGroup_Encoder_Forward[8]; extern const uint8_t HallSensorGroup_Encoder_Backward[8]; extern MC_HallSensorData_Struct_t MC_HallSensorData; extern uint8_t Hall_ReadState(void); extern void HallSensor_GPIO_Init(void); extern void HallSensorAngle_Init(void); extern void HallSensor_Process(void); extern int16_t MotorSpeedCal(uint16_t SVM_Angle, TrueOrFalse_Flag_Struct_t IsStopFlag); #endif