#include "var.h" MC_RunInfo_Struct_t MC_RunInfo; MC_ErrorCode_Struct_t MC_ErrorCode,MC_ErrorCodeBackup; ControlCode_Struct_t ControlCode; ControlCode_Struct_t ControlCode_MC_WalkSby; PBU_AssitMode_Status_Struct_t PBU_AssitMode_Status; BMS_RunInfo_Struct_t BMS_RunInfo; BMS_ErrorCode_Struct_t BMS_ErrorCode; PBU_HMI_Menu_Process_Struct_t PBU_HMI_Menu_Process; PBU_TestMode_Process_Struct_t PBU_Test_Process; PBU_ConfigParam_Struct_t PBU_ConfigParam; PBU_RunLog_Struct_t PBU_RunLog; PBU_MacInfo_Struct_t PBU_MacInfo; PBU_VerInfo_Struct_t PBU_VerInfo; PBU_CheckInfo_Struct_t PBU_CheckInfo; PBU_RunMode_t PBU_RunMode; PBU_PowerOff_Process_Struct_t PBU_PowerOff_Process; PBU_PowerOn_Process_Struct_t PBU_PowerOn_Process; PBU_MC_CfgProcess_Struct_t PBU_MC_Cfg; uint32_t SysTime_5ms = 0; char UserString1[16]; char UserString2[16]; char UserString3[16]; PBU_ErrorCode_Struct_t PBU_ErrorCode,PBU_ErrorCodeBackup; PBU_ErrorCode_Struct_t PBU_hardwareErrorCode; PBU_ErrorCode_Struct_t PBU_commErrorCode; PBU_ErrorCode_Struct_t PBU_TE_ErrorCode; TrueOrFalse_Flag_Struct_t PBU_ErrorFlag = FALSE; TrueOrFalse_Flag_Struct_t BMS_ChargingFlag = FALSE; TrueOrFalse_Flag_Struct_t PBU_TE_FaultDetectFlag= FALSE; _Bool BMS_Online_Flag; _Bool HMI_Online_Flag; _Bool MC_Online_Flag; _Bool TE_Online_Flag; uint32_t HMI_Online_TimeCnt=0; uint32_t MC_Online_TimeCnt=0; uint32_t BMS_Online_TimeCnt=0; uint32_t TE_Online_TimeCnt=0; uint32_t Vin_test_TimeCnt = 0; uint8_t Scan_Key_Start=0x00; uint8_t LED_Blink_Enable=0x00; uint32_t PBU_Error_senddata=0; uint32_t ErrorCodeFinal=0; void Var_Init(void) { //MC控制指令 ControlCode.GearSt = 0; ControlCode.LightSwitch = 0xF0; //助力模式 PBU_AssitMode_Status.GearStBak_Smart = 0; PBU_AssitMode_Status.GearStBak_Walk = 0; PBU_AssitMode_Status.PBU_AssistMode_Flag = PBU_AssistMode_Flag_Gear; PBU_AssitMode_Status.SendCodeTimeCnt_Ctl = 0; PBU_AssitMode_Status.WalkDelayTimeCnt = 0; PBU_AssitMode_Status.IsSmartEtrWalk_Flag = FALSE; PBU_AssitMode_Status.PBU_WalkSbyProcess.SendCodeTimeCnt_WalkSby = 0; PBU_AssitMode_Status.PBU_WalkSbyProcess.DelayTimeCnt = 0; PBU_AssitMode_Status.PBU_WalkSbyProcess.HMI_ACK_Flag = TRUE; //PBU按键状态 PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Add = Key_Status_NoPress; PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Dec = Key_Status_NoPress; PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Light = Key_Status_NoPress; PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Power = Key_Status_NoPress; PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Set = Key_Status_NoPress; PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Walk = Key_Status_NoPress; PBU_HMI_Menu_Process.KeyTrig_Flag = 0; PBU_HMI_Menu_Process.HMI_ACK_Flag = FALSE; PBU_HMI_Menu_Process.SendCodeTimeCnt = 0; PBU_HMI_Menu_Process.DelayTimeCnt = 0; //按键测试状态 PBU_Test_Process.KeyTest_Status.Status = 0x00; PBU_Test_Process.SendCodeTimeCnt = 0; //PBU版本信息,Mode和SN从EEPROM读取 strcpy(PBU_VerInfo.HW_Version, (char*)"TT-YB-001A.");//长度为16bytes strcpy(PBU_VerInfo.FW_Version, (char*)"V4r1r0_20240403.");//长度为16bytes //PBU校验信息,校验码从EEPROM读取 PBU_CheckInfo.MAC_ID[0] = *(__IO uint32_t*)(0x1FFFF7AC); PBU_CheckInfo.MAC_ID[1] = *(__IO uint32_t*)(0x1FFFF7B0); PBU_CheckInfo.MAC_ID[2] = *(__IO uint32_t*)(0x1FFFF7B4); //PBU运行模式 PBU_RunMode = PBU_RunMode_MC_AssisitCtrl; //PBU开机处理 PBU_PowerOn_Process.PowerOnTimeCnt=0; PBU_PowerOn_Process.PowerOnOKCnt=0; PBU_PowerOn_Process.PowerKeyStatus = 0; //PBU关机处理 PBU_PowerOff_Process.DelayTimeCnt = 0; PBU_PowerOff_Process.SendCodeTimeCnt = 0; PBU_PowerOff_Process.Ready_Status.Status = 0x00; //PBU配置MC PBU_MC_Cfg.MC_ACK_Flag = FALSE; PBU_MC_Cfg.DelayTimeCnt = 0; PBU_MC_Cfg.SendCodeTimeCnt = 0; //PBU配置信息 PBU_ConfigParam.GearsNum = 4; PBU_ConfigParam.NoHMI_Flag = 0xAA; PBU_ConfigParam.RatedVoltage = 1; //0-24 1-36 2-48 //故障码初始化 PBU_ErrorCode.Code = 0; PBU_hardwareErrorCode.Code=0; PBU_commErrorCode.Code=0; PBU_TE_ErrorCode.Code=0; MC_ErrorCode.Code = 0; BMS_ErrorCode.Code = 0; PBU_ErrorCodeBackup.Code = 0; MC_ErrorCodeBackup.Code = 0; MC_RunInfo.SOC = 0xFF; } void Error_Init(void) { //MC控制指令 ControlCode.GearSt = 0; //助力模式 PBU_AssitMode_Status.GearStBak_Smart = 0; PBU_AssitMode_Status.GearStBak_Walk = 0; PBU_AssitMode_Status.PBU_AssistMode_Flag = PBU_AssistMode_Flag_Gear; PBU_AssitMode_Status.IsSmartEtrWalk_Flag = FALSE; PBU_AssitMode_Status.PBU_WalkSbyProcess.HMI_ACK_Flag = TRUE; }