#ifndef _COMM_CAR_485_H_ #define _COMM_CAR_485_H_ //--------------私有包含 #include "FreeRTOS.h" #include "task.h" #include "main.h" #include "cmsis_os.h" #include "task_ec800_upload.h" #include "usart.h" #include "task_communication.h" #include //--------------私有define #define SEND_ENALE #define REC_ENALE #define MB_SLAVEADDR 0x01 // 从站地址 #define FUN_CODE_03H 0x03 //功能码03H #define FUN_CODE_05H 0x05 //功能码05H //--------------重定义 typedef struct{ uint16_t vehicleSpeed; // 实时车速 uint16_t dailyDrivTime; // 当日行驶时长 高字节用来表示小时,低字节用来表示分钟 uint16_t dailyDrivMileage; // 当日行驶里程 0.1km uint16_t accTotalDrivTime_day; // 累积行驶总时长 天 uint16_t accTotalDrivTime_h_min; // 累积行驶总时长 小时 分钟 高字节用来表示小时,低字节用来表示分钟 uint16_t accTotalMileage_h; // 累积行驶总里程 高16字节 uint16_t accTotalMileage_l; // 累积行驶总里程 低16字节 uint16_t runTime; // 单次运行时长 高字节用来表示小时,低字节用来表示分钟 uint16_t batCompartmentTemp; // 电池仓温度 uint16_t demandCur; // 需求电流 0.1A uint16_t demandVol; // 需求电压 0.1V uint16_t alarmLevel; // 告警等级 uint16_t alarmType; // 告警类型 uint8_t batSn[40]; // 电池编码ASCII码 uint8_t Vehicle_Num[20]; // 车辆编号 uint8_t VIN[26]; // 车架号 }rs485RecDate; extern rs485RecDate s_rs485RecDate; typedef struct{ uint8_t speed; // 服务器下发的车速 }rs485SendDate; extern rs485SendDate s_rs485SendDate; //--------------参数声明 extern uint8_t timeoutCnt_485; //--------------函数声明 // @brief 轮询发送接收 void rs485_poll_sendReceive(uint16_t speed); // @brief 485接收分析函数 int parseModbusResponse(uint8_t *response, uint16_t responseSize); #endif