/* * inflash.h * * Created on: 2024年6月24日 * Author: psx */ #ifndef APP_INC_INFLASH_H_ #define APP_INC_INFLASH_H_ #include "debug.h" #pragma pack(push,1) typedef struct _uint8_config_info{ uint8_t start_Flag[2]; /* 起始标志 */ uint8_t address[7]; /* 地址 */ uint8_t end_Flag; /* 结束标志 */ uint8_t Access_Node_Type[2]; /* 接入节点类型 */ uint8_t Communication_Methods[2]; /* 通信方式 */ uint8_t bat485_Baud[4]; /* 串口波特率,为0代表bms不支持通信 */ uint8_t gw485_Baud[4]; /* 串口波特率 */ uint8_t ConstantCurrentV[2]; /* 高于该(电压 / 100),小于ConstantVoltageV * 100电压进行恒流充电 */ uint8_t ConstantVoltageV[2]; /* 高于该(电压 / 100)且电流大于FloatI * 100进行恒压充电 */ uint8_t FloatI[2]; /* 高于该(电压 / 100)且电流低于FloatI * 100进行浮充充电 */ uint8_t startSolarOpenCircuitV[2]; /* 高于该(电压 / 100)开始充电 */ }uint8_config_info; //typedef struct _config_info{ // uint8_t start_Flag[2]; /* 起始标志 */ // uint8_t address[7]; /* 地址 */ // uint8_t end_Flag; /* 结束标志 */ // uint16_t Access_Node_Type; /* 接入节点类型 */ // uint16_t Communication_Methods; /* 通信方式 */ // uint32_t bat485_Baud; /* 串口波特率 */ // uint32_t gw485_Baud; /* 串口波特率 */ // uint16_t ConstantCurrentV; /* 高于该(电压 / 100),小于ConstantVoltageV / 100电压进行恒流充电 */ // uint16_t ConstantVoltageV; /* 高于该(电压 / 100)且电流大于FloatI / 100进行恒压充电 */ // uint16_t FloatI; /* 高于该(电压 / 100)且电流低于FloatI / 100进行浮充充电 */ // uint16_t startSolarOpenCircuitV;/* 高于该(电压 / 100)开始充电 */ //}config_info; typedef struct _config_info{ uint8_t start_Flag[2]; /* 起始标志 */ uint8_t address[7]; /* 地址 */ uint32_t baud_485; /* 串口波特率 */ uint16_t constantCurrentV; /* 电压高于(ConstantCurrentV / 100 + 0.4),小于(ConstantVoltageV / 100 - 0.4)进入mppt模式 */ uint16_t constantVoltageV; /* 电压高于该(ConstantVoltageV / 100)且电流大于(FloatI / 100 + 0.1)进行恒压充电 */ uint16_t floatI; /* 电压高于该(ConstantVoltageV / 100)且电流低于(FloatI / 100)进行浮充充电 */ uint16_t startSolarOpenCircuitV; /* 太阳能板开路电压高于该(电压 / 100)开始充电 */ uint16_t stopSolarOpenCircuitV; /* 太阳能板开路电压高于该(电压 / 100)停止充电 */ uint16_t noBatteryChargeV; /* 没有电池时的输出电压 */ uint16_t FloatTime; /* 浮充时间(秒) */ uint16_t checkSolarOpenCircuitVTime; /* 启动任务中太阳能板开路电压检测时间 */ uint16_t registerRefreshTime; /* 寄存器数据刷新时间 */ uint16_t resRefreshTime; /* 线阻计算间隔时长 */ uint16_t sensorEnableBroadcastTime; /* 传感器运行再次注册的间隔 */ uint16_t HighSideMosTemperature_stop; /* 当上桥温度达到该值时,停止输出 */ uint16_t HighSideMosTemperature_end; /* 当上桥温度上升到该值时,输出稳定在12V,降低功率运行 */ uint16_t HighSideMosTemperature_start; /* 当上桥温度降低到该值时,按照正常情况输出 */ uint8_t end_Flag; /* 结束标志 */ }config_info; #define CONFIG_INFO_SIZE (sizeof(config_info)) #pragma pack(pop) extern config_info g_slConfigInfo; #define FLASH_SAVE_ADDR_BEGIN (0x00) #define FLASH_SAVE_ADDR_END (0x00 + CONFIG_INFO_SIZE) void save_config_info(config_info save_config_info); uint8_t read_config_info(void); #endif /* APP_INC_INFLASH_H_ */