var.c 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. #include "var.h"
  2. MC_RunInfo_Struct_t MC_RunInfo;
  3. MC_ErrorCode_Struct_t MC_ErrorCode,MC_ErrorCodeBackup;
  4. ControlCode_Struct_t ControlCode;
  5. ControlCode_Struct_t ControlCode_MC_WalkSby;
  6. PBU_AssitMode_Status_Struct_t PBU_AssitMode_Status;
  7. BMS_RunInfo_Struct_t BMS_RunInfo;
  8. BMS_ErrorCode_Struct_t BMS_ErrorCode;
  9. PBU_HMI_Menu_Process_Struct_t PBU_HMI_Menu_Process;
  10. PBU_TestMode_Process_Struct_t PBU_Test_Process;
  11. PBU_ConfigParam_Struct_t PBU_ConfigParam;
  12. PBU_RunLog_Struct_t PBU_RunLog;
  13. PBU_MacInfo_Struct_t PBU_MacInfo;
  14. PBU_VerInfo_Struct_t PBU_VerInfo;
  15. PBU_CheckInfo_Struct_t PBU_CheckInfo;
  16. PBU_RunMode_t PBU_RunMode;
  17. PBU_PowerOff_Process_Struct_t PBU_PowerOff_Process;
  18. PBU_PowerOn_Process_Struct_t PBU_PowerOn_Process;
  19. PBU_MC_CfgProcess_Struct_t PBU_MC_Cfg;
  20. uint32_t SysTime_5ms = 0;
  21. char UserString1[16];
  22. char UserString2[16];
  23. char UserString3[16];
  24. PBU_ErrorCode_Struct_t PBU_ErrorCode,PBU_ErrorCodeBackup;
  25. PBU_ErrorCode_Struct_t PBU_hardwareErrorCode;
  26. PBU_ErrorCode_Struct_t PBU_commErrorCode;
  27. PBU_ErrorCode_Struct_t PBU_TE_ErrorCode;
  28. TrueOrFalse_Flag_Struct_t PBU_ErrorFlag = FALSE;
  29. TrueOrFalse_Flag_Struct_t BMS_ChargingFlag = FALSE;
  30. TrueOrFalse_Flag_Struct_t PBU_TE_FaultDetectFlag= FALSE;
  31. _Bool BMS_Online_Flag;
  32. _Bool HMI_Online_Flag;
  33. _Bool MC_Online_Flag;
  34. _Bool TE_Online_Flag;
  35. uint32_t HMI_Online_TimeCnt=0;
  36. uint32_t MC_Online_TimeCnt=0;
  37. uint32_t BMS_Online_TimeCnt=0;
  38. uint32_t TE_Online_TimeCnt=0;
  39. uint32_t Vin_test_TimeCnt = 0;
  40. uint8_t Scan_Key_Start=0x00;
  41. uint8_t LED_Blink_Enable=0x00;
  42. uint32_t PBU_Error_senddata=0;
  43. uint32_t ErrorCodeFinal=0;
  44. void Var_Init(void)
  45. {
  46. //MC控制指令
  47. ControlCode.GearSt = 0;
  48. ControlCode.LightSwitch = 0xF0;
  49. //助力模式
  50. PBU_AssitMode_Status.GearStBak_Smart = 0;
  51. PBU_AssitMode_Status.GearStBak_Walk = 0;
  52. PBU_AssitMode_Status.PBU_AssistMode_Flag = PBU_AssistMode_Flag_Gear;
  53. PBU_AssitMode_Status.SendCodeTimeCnt_Ctl = 0;
  54. PBU_AssitMode_Status.WalkDelayTimeCnt = 0;
  55. PBU_AssitMode_Status.IsSmartEtrWalk_Flag = FALSE;
  56. PBU_AssitMode_Status.PBU_WalkSbyProcess.SendCodeTimeCnt_WalkSby = 0;
  57. PBU_AssitMode_Status.PBU_WalkSbyProcess.DelayTimeCnt = 0;
  58. PBU_AssitMode_Status.PBU_WalkSbyProcess.HMI_ACK_Flag = TRUE;
  59. //PBU按键状态
  60. PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Add = Key_Status_NoPress;
  61. PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Dec = Key_Status_NoPress;
  62. PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Light = Key_Status_NoPress;
  63. PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Power = Key_Status_NoPress;
  64. PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Set = Key_Status_NoPress;
  65. PBU_HMI_Menu_Process.PBU_HMI_KeyStatus.Key_Walk = Key_Status_NoPress;
  66. PBU_HMI_Menu_Process.KeyTrig_Flag = 0;
  67. PBU_HMI_Menu_Process.HMI_ACK_Flag = FALSE;
  68. PBU_HMI_Menu_Process.SendCodeTimeCnt = 0;
  69. PBU_HMI_Menu_Process.DelayTimeCnt = 0;
  70. //按键测试状态
  71. PBU_Test_Process.KeyTest_Status.Status = 0x00;
  72. PBU_Test_Process.SendCodeTimeCnt = 0;
  73. //PBU版本信息,Mode和SN从EEPROM读取
  74. strcpy(PBU_VerInfo.HW_Version, (char*)"TT-YB-001A.");//长度为16bytes
  75. strcpy(PBU_VerInfo.FW_Version, (char*)"V4r1r0_20240403.");//长度为16bytes
  76. //PBU校验信息,校验码从EEPROM读取
  77. PBU_CheckInfo.MAC_ID[0] = *(__IO uint32_t*)(0x1FFFF7AC);
  78. PBU_CheckInfo.MAC_ID[1] = *(__IO uint32_t*)(0x1FFFF7B0);
  79. PBU_CheckInfo.MAC_ID[2] = *(__IO uint32_t*)(0x1FFFF7B4);
  80. //PBU运行模式
  81. PBU_RunMode = PBU_RunMode_MC_AssisitCtrl;
  82. //PBU开机处理
  83. PBU_PowerOn_Process.PowerOnTimeCnt=0;
  84. PBU_PowerOn_Process.PowerOnOKCnt=0;
  85. PBU_PowerOn_Process.PowerKeyStatus = 0;
  86. //PBU关机处理
  87. PBU_PowerOff_Process.DelayTimeCnt = 0;
  88. PBU_PowerOff_Process.SendCodeTimeCnt = 0;
  89. PBU_PowerOff_Process.Ready_Status.Status = 0x00;
  90. //PBU配置MC
  91. PBU_MC_Cfg.MC_ACK_Flag = FALSE;
  92. PBU_MC_Cfg.DelayTimeCnt = 0;
  93. PBU_MC_Cfg.SendCodeTimeCnt = 0;
  94. //PBU配置信息
  95. PBU_ConfigParam.GearsNum = 4;
  96. PBU_ConfigParam.NoHMI_Flag = 0xAA;
  97. PBU_ConfigParam.RatedVoltage = 1; //0-24 1-36 2-48
  98. //故障码初始化
  99. PBU_ErrorCode.Code = 0;
  100. PBU_hardwareErrorCode.Code=0;
  101. PBU_commErrorCode.Code=0;
  102. PBU_TE_ErrorCode.Code=0;
  103. MC_ErrorCode.Code = 0;
  104. BMS_ErrorCode.Code = 0;
  105. PBU_ErrorCodeBackup.Code = 0;
  106. MC_ErrorCodeBackup.Code = 0;
  107. MC_RunInfo.SOC = 0xFF;
  108. }
  109. void Error_Init(void)
  110. {
  111. //MC控制指令
  112. ControlCode.GearSt = 0;
  113. //助力模式
  114. PBU_AssitMode_Status.GearStBak_Smart = 0;
  115. PBU_AssitMode_Status.GearStBak_Walk = 0;
  116. PBU_AssitMode_Status.PBU_AssistMode_Flag = PBU_AssistMode_Flag_Gear;
  117. PBU_AssitMode_Status.IsSmartEtrWalk_Flag = FALSE;
  118. PBU_AssitMode_Status.PBU_WalkSbyProcess.HMI_ACK_Flag = TRUE;
  119. }