Prechádzať zdrojové kódy

V7r2r0_20221012
增加掉电保存里程功能;

white.xu 2 rokov pred
rodič
commit
7bc53dabec

+ 1 - 0
Core/Src/adc.c

@@ -796,6 +796,7 @@ void PowerDownProtection( uint16_t BusVoltage_AD )
 			{
 				Disable_PwmGpio_Out();
 				poweronFlag = FALSE;
+				PowerDown_SaveFlag = TRUE;
 			}
 		}
 		else

+ 11 - 1
Core/Src/main.c

@@ -308,7 +308,17 @@ int main(void)
 			  ErrorLogSave_Process(&MC_ErrorLogSaveInfo, &IsErrorLogSaveInfoUpdateFlag);
 				RunLogSave_Process(&RunLogSaveIndex);
 			}
-			
+			if(PowerDown_SaveFlag==TRUE)
+			{	
+				MC_PowerOffBkp.ODO_Km = MC_RideLog.ODO_Km;
+				MC_PowerOffBkp.ODO_Time = MC_RideLog.ODO_Time;
+				MC_PowerOffBkp.Trip_Km = MC_RideLog.TRIP_Km;
+				MC_PowerOffBkp.Trip_Time = MC_RideLog.TRIP_Time;
+				MC_PowerOffBkp.Run_Time = MC_RunLog1.RunTime;
+				SaveDataToEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP, (uint8_t*)&MC_PowerOffBkp.ODO_Km, 40);//写入掉电临时保存数据,写入前该区域需擦除为0xFF才能操作成功
+				SaveDataToEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP_FLAG, (uint8_t*)"FLAG", 4); //掉电存储的数据标志更新
+				PowerDown_SaveFlag = FALSE;
+			}
 			#if 1
 			//故障检测
 			MC_Fault_Check_Process();

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1109 - 1109
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 1 - 0
User/Inc/var.h

@@ -490,6 +490,7 @@ extern MCU_Manufacturter_Struct_t MCUManufacturer;
 extern uint16_t SpeedRatio;
 extern uint16_t HardwareVersion_AD;
 extern TrueOrFalse_Flag_Struct_t VersionIdentifyFinishedFlag;
+extern TrueOrFalse_Flag_Struct_t PowerDown_SaveFlag;
 /**************************全局变量声明End***************************/
 
 /**************************全局函数声明Begin*************************/

+ 2 - 1
User/Src/var.c

@@ -42,6 +42,7 @@ MCU_Manufacturter_Struct_t MCUManufacturer;               //MCU
 uint16_t SpeedRatio;
 uint16_t HardwareVersion_AD=0;
 TrueOrFalse_Flag_Struct_t VersionIdentifyFinishedFlag = FALSE;
+TrueOrFalse_Flag_Struct_t PowerDown_SaveFlag = FALSE;
 //BMS默认设计信息
 const BMS_DesignInfo_Struct_t BMS_DesignInfo_Default =
 {
@@ -500,7 +501,7 @@ void Var_Init(void)
 		
 	//MC版本信息初始化,Mode和SN从EEPROM读取
 	strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ010D.       ", 16);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V7r2r0_20221011C", 16);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V7r2r0_20221012C", 16);
   #if NormalWork
 	MC_VerInfo.FW_Version[15] = '.';
   #endif

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov