comm_car_485(3718).h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef _COMM_CAR_485_H_
  2. #define _COMM_CAR_485_H_
  3. //--------------私有包含
  4. #include "FreeRTOS.h"
  5. #include "task.h"
  6. #include "main.h"
  7. #include "cmsis_os.h"
  8. #include "task_ec800_upload.h"
  9. #include "usart.h"
  10. //--------------私有define
  11. #define SEND_ENALE
  12. #define REC_ENALE
  13. #define MB_SLAVEADDR 0x01 // 从站地址
  14. #define FUN_CODE_03H 0x03 //功能码03H
  15. #define FUN_CODE_05H 0x05 //功能码05H
  16. //--------------重定义
  17. typedef struct{
  18. uint16_t vehicleSpeed; // 实时车速
  19. uint16_t dailyDrivTime; // 当日行驶时长 高字节用来表示小时,低字节用来表示分钟
  20. uint16_t dailyDrivMileage; // 当日行驶里程 0.1km
  21. uint16_t accTotalDrivTime_day; // 累积行驶总时长 天
  22. uint16_t accTotalDrivTime_h_min; // 累积行驶总时长 小时 分钟 高字节用来表示小时,低字节用来表示分钟
  23. uint16_t accTotalMileage_h; // 累积行驶总里程 高16字节
  24. uint16_t accTotalMileage_l; // 累积行驶总里程 低16字节
  25. uint16_t runTime; // 单次运行时长 高字节用来表示小时,低字节用来表示分钟
  26. uint16_t batCompartmentTemp; // 电池仓温度
  27. uint16_t demandCur; // 需求电流 0.1A
  28. uint16_t demandVol; // 需求电压 0.1V
  29. uint16_t alarmLevel; // 告警等级
  30. uint16_t alarmType; // 告警类型
  31. uint8_t batSn[40]; // 电池编码ASCII码
  32. uint8_t Vehicle_Num[20]; // 车辆编号
  33. uint8_t VIN[26]; // 车架号
  34. }rs485RecDate;
  35. extern rs485RecDate s_rs485RecDate;
  36. typedef struct{
  37. uint8_t speed; // 服务器下发的车速
  38. }rs485SendDate;
  39. extern rs485SendDate s_rs485SendDate;
  40. //--------------参数声明
  41. //--------------函数声明
  42. // @brief 轮询发送接收
  43. void rs485_poll_sendReceive(uint16_t speed);
  44. // @brief 485接收分析函数
  45. int parseModbusResponse(uint8_t *response, uint16_t responseSize);
  46. #endif