hall_sensor.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef __HALL_SENSOR_H
  2. #define __HALL_SENSOR_H
  3. #include "stm32f1xx_hal.h"
  4. #define HALL_C_Pin GPIO_PIN_9
  5. #define HALL_C_GPIO_Port GPIOC
  6. #define HALL_A_Pin GPIO_PIN_7
  7. #define HALL_A_GPIO_Port GPIOC
  8. #define HALL_B_Pin GPIO_PIN_8
  9. #define HALL_B_GPIO_Port GPIOC
  10. #define ANGLE_60D 10922
  11. #define ANGLE_120D 21844
  12. #define HALL_ORIGIN (int8_t)0
  13. //霍尔传感器检测结果
  14. typedef struct
  15. {
  16. uint32_t PWM_NumCnt; // PWM计数
  17. uint16_t Delta_Angle; // 步进角
  18. uint16_t Delta_AngleSum; // 67.5度内步进角累加和
  19. uint16_t SVM_Angle; // 电角度
  20. TrueOrFalse_Flag_Struct_t IsStopFlag; // 停止标志
  21. TrueOrFalse_Flag_Struct_t InverterExistFlag;
  22. uint16_t motorspeed;
  23. uint16_t motorspeed_RCFlt;
  24. TrueOrFalse_Flag_Struct_t BackwardFlag;
  25. }MC_HallSensorData_Struct_t;
  26. //霍尔传感器输出状态
  27. typedef struct
  28. {
  29. uint8_t HallGropuStatus;
  30. uint8_t HallGropuStatus_Old;
  31. }MC_HallSensorStatus_Struct_t;
  32. extern const uint8_t HallSensorGroup_Encoder_Forward[8];
  33. extern const uint8_t HallSensorGroup_Encoder_Backward[8];
  34. extern MC_HallSensorData_Struct_t MC_HallSensorData;
  35. extern uint8_t Hall_ReadState(void);
  36. extern void HallSensor_GPIO_Init(void);
  37. extern void HallSensorAngle_Init(void);
  38. extern void HallSensor_Process(void);
  39. extern int16_t MotorSpeedCal(uint16_t SVM_Angle, TrueOrFalse_Flag_Struct_t IsStopFlag);
  40. #endif