hall_sensor.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. }MC_HallSensorData_Struct_t;
  22. //霍尔传感器输出状态
  23. typedef struct
  24. {
  25. uint8_t HallGropuStatus;
  26. uint8_t HallGropuStatus_Old;
  27. }MC_HallSensorStatus_Struct_t;
  28. extern const uint8_t HallSensorGroup_Encoder_Forward[8];
  29. extern const uint8_t HallSensorGroup_Encoder_Backward[8];
  30. extern MC_HallSensorData_Struct_t MC_HallSensorData;
  31. extern uint8_t Hall_ReadState(void);
  32. extern void HallSensor_GPIO_Init(void);
  33. extern void HallSensorAngle_Init(void);
  34. extern void HallSensor_Process(void);
  35. extern int16_t MotorSpeedCal(uint16_t SVM_Angle, TrueOrFalse_Flag_Struct_t IsStopFlag);
  36. #endif