torque_sensor.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef __TORQUE_SENSOR_H
  2. #define __TORQUE_SENSOR_H
  3. #include "stm32f1xx_hal.h"
  4. #include "adc.h"
  5. #include "var.h"
  6. //力矩传感器启动值默认值
  7. #define TORQUE_SENSOR_STARTDATA 368
  8. //力矩传感器历史零点值,占用空间24bytes
  9. typedef struct
  10. {
  11. uint16_t Data[9];
  12. uint16_t MaxData;
  13. uint16_t MinData;
  14. uint16_t PresentData;
  15. }TorqueOffSetData_Struct_t;
  16. //传感器属性
  17. typedef struct
  18. {
  19. TorqueOffSetData_Struct_t Torque_OffSetData;//零点历史值
  20. uint8_t Torque_Cal_K;//标定系数
  21. }TorqueSensor_Param_Struct_t;
  22. //线性校正系数
  23. typedef struct
  24. {
  25. uint16_t Torque_Measure;// N.m * 28
  26. uint8_t Torque_Load; // N.m
  27. uint8_t Correction_K; // * 128
  28. }TorqueSensor_LinearCorrectionParam_Struct_t;
  29. //传感器故障状态
  30. typedef union
  31. {
  32. struct
  33. {
  34. uint8_t Sensor1 :1; //传感器1故障状态位
  35. uint8_t Sensor2 :1; //传感器2故障状态位
  36. uint8_t Sensor3 :1; //传感器3故障状态位
  37. uint8_t RS :5;
  38. }FaultBit;
  39. uint8_t FaultStatusCode;
  40. }TorsueSensorFaultStatus_Struct_t;
  41. //全局变量声明
  42. extern TorqueSensor_Param_Struct_t TorqueSensor_1_Param;
  43. extern TorqueSensor_Param_Struct_t TorqueSensor_2_Param;
  44. extern TorqueSensor_Param_Struct_t TorqueSensor_3_Param;
  45. extern TorsueSensorFaultStatus_Struct_t TorsueSensorFaultStatus;
  46. extern uint16_t TorqueSensorStartData;
  47. extern TrueOrFalse_Flag_Struct_t IsTorqueOffSetUpdateEnable;
  48. extern TorqueSensor_LinearCorrectionParam_Struct_t TorqueSensor_LinearCorrectionParam[15];
  49. //全局变量定义
  50. extern void TorqueSensor_ParamSetDefaultData_Init(TorqueSensor_Param_Struct_t* p_TorqueSensor_Param, uint16_t AdcData);
  51. extern void TorqueOffSetData_Process(TorqueOffSetData_Struct_t* p_TorqueOffSetData, uint16_t AdcData);
  52. extern void TorqueOffSetData_Present_Update1(uint16_t* PresentData, uint16_t AdcData, uint8_t Cal_K, MC_ErrorCode_Struct_t* p_MC_ErrorCode);
  53. extern void TorqueOffSetData_Present_Update2(uint16_t* PresentData, uint16_t AdcData, uint8_t Cal_K, MC_ErrorCode_Struct_t* p_MC_ErrorCode);
  54. extern void TorqueOffSetData_Present_Update3(uint16_t* PresentData, uint16_t AdcData, uint8_t Cal_K, MC_ErrorCode_Struct_t* p_MC_ErrorCode);
  55. #endif