soft_herewin.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef __SOFT_HEREWIN_H
  2. #define __SOFT_HEREWIN_H
  3. #include "common.h"
  4. //报警信息、警告信息
  5. //B15:放电过流 B14:电池损坏 B13: B12:电池低温(充电/放电) B11:电池高温(充电/放电) B10:电池(单体)欠压
  6. //B9: 电池(单体)过压 B8: B7: B6: B5: B4: B3: B2: B1: B0: 充电过流
  7. #pragma pack(1)
  8. typedef struct
  9. {
  10. char battery_temp[3]; //每个电芯温度°C
  11. uint16_t battery_vol[14]; //每个电芯电压 0.001V
  12. uint16_t alarm_info; //报警信息
  13. uint16_t warn_info; //警告信息
  14. uint16_t total_vol; //总电压 0.01V
  15. uint16_t tolal_ele; //总电流 0.01A
  16. uint8_t SOC_info; //剩余电量%
  17. uint8_t SOH_info; //健康状态%
  18. uint8_t SOP_info; //功率状态%
  19. uint32_t serial_number; //序列号
  20. uint16_t hard_version; //硬件版本
  21. uint16_t soft_version; //软件版本
  22. uint8_t battery_num; //电芯个数
  23. uint16_t circulation_num; //循环次数
  24. //充电请求相关参数
  25. uint16_t re_vol; //请求电压
  26. uint16_t re_ele; //请求电流
  27. uint16_t max_vol; //单体最大电压
  28. uint16_t power_status; //充电状态
  29. bool get_temp_flag; //温度是单独一包,并且有偏移,没获取到温度之前会显示负数
  30. }herewin_bms;
  31. #pragma pack()
  32. extern herewin_bms herewin_info;
  33. extern Connect_check Herewin_Link;
  34. #define HEREWIN_HEART_ID 0x004300F0 //心跳数据包
  35. #define HEREWIN_VOL_ID 0x008400F0 //单体电压包
  36. #define HEREWIN_TEM_ID 0x008200F0 //单体温度包
  37. #define HEREWIN_SEARCH_ID 0x008000F0 //定值查询
  38. #define HEREWIN_CIRCULATION_ID 0x008600F0 //循环次数查询
  39. void HerewinCanRecvHookFunction(uint32_t cellCanID, uint8_t data[], uint8_t len);
  40. void send_msg_to_herewin(void);
  41. #endif