Эх сурвалжийг харах

1、解决电量低时SOC=0xFF问题;
2、修改故障日志地址和临时地址,解决SN擦除问题。

Dail 1 жил өмнө
parent
commit
d136ccd2ff

+ 4 - 4
MDK-ARM/QD007A_CTL_APP.uvprojx

@@ -14,7 +14,7 @@
         <TargetCommonOption>
           <Device>STM32F103RB</Device>
           <Vendor>STMicroelectronics</Vendor>
-          <PackID>Keil.STM32F1xx_DFP.1.1.0</PackID>
+          <PackID>Keil.STM32F1xx_DFP.2.3.0</PackID>
           <PackURL>http://www.keil.com/pack/</PackURL>
           <Cpu>IROM(0x08000000,0x20000) IRAM(0x20000000,0x5000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
@@ -129,7 +129,7 @@
             <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
             <RunToMain>1</RunToMain>
             <RestoreBreakpoints>1</RestoreBreakpoints>
-            <RestoreWatchpoints>1</RestoreWatchpoints>
+            <RestoreWatchpoints>0</RestoreWatchpoints>
             <RestoreMemoryDisplay>1</RestoreMemoryDisplay>
             <RestoreFunctions>1</RestoreFunctions>
             <RestoreToolbox>1</RestoreToolbox>
@@ -149,7 +149,7 @@
             <RestoreSysVw>1</RestoreSysVw>
           </Target>
           <RunDebugAfterBuild>0</RunDebugAfterBuild>
-          <TargetSelection>1</TargetSelection>
+          <TargetSelection>6</TargetSelection>
           <SimDlls>
             <CpuDll></CpuDll>
             <CpuDllArguments></CpuDllArguments>
@@ -163,7 +163,7 @@
             <PeripheralDll></PeripheralDll>
             <PeripheralDllArguments></PeripheralDllArguments>
             <InitializationFile></InitializationFile>
-            <Driver>BIN\UL2CM3.DLL</Driver>
+            <Driver>Segger\JL2CM3.dll</Driver>
           </TargetDlls>
         </DebugOption>
         <Utilities>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 2596 - 2596
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 7 - 6
MDK-ARM/stm32f1xx_stucpuregsaddressing.lst

@@ -123,18 +123,19 @@ ARM Macro Assembler    Page 2
    99 00000096                 END
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=.\qd007a_ctl_app\stm32f1xx_stucpuregsaddressing.d -o.\qd007a_ctl_a
-pp\stm32f1xx_stucpuregsaddressing.o -ID:\Documents\Work\SoftDesign\TT-KZ-010A_C
-TRL_APP\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.4.0\CMSIS\Include -IC:\Ke
-il_v5\ARM\PACK\Keil\STM32F1xx_DFP\1.1.0\Device\Include --predefine="__MICROLIB 
-SETA 1" --predefine="__UVISION_VERSION SETA 515" --predefine="_RTE_ SETA 1" --p
-redefine="STM32F10X_MD SETA 1" --list=stm32f1xx_stucpuregsaddressing.lst ..\Sel
+pp\stm32f1xx_stucpuregsaddressing.o -ID:\SoftDesign\20190311_QD007A_CTL\TT-KZ-0
+10A_CTRL_APP\TT-KZ-010A_CTRL_APP\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.
+6.0\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\In
+clude --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 515" 
+--predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_s
 
 
 
 ARM Macro Assembler    Page 3 
 
 
-fTestUser\src_specific\stm32f1xx_STUCpuRegsAddressing.s
+tucpuregsaddressing.lst ..\SelfTestUser\src_specific\stm32f1xx_STUCpuRegsAddres
+sing.s
 
 
 

+ 6 - 6
MDK-ARM/stm32f1xx_stucpuwalkpatkeil.lst

@@ -1593,12 +1593,12 @@ ARM Macro Assembler    Page 25
  1172 000006D0                 END
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=.\qd007a_ctl_app\stm32f1xx_stucpuwalkpatkeil.d -o.\qd007a_ctl_app\
-stm32f1xx_stucpuwalkpatkeil.o -ID:\Documents\Work\SoftDesign\TT-KZ-010A_CTRL_AP
-P\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.4.0\CMSIS\Include -IC:\Keil_v5\
-ARM\PACK\Keil\STM32F1xx_DFP\1.1.0\Device\Include --predefine="__MICROLIB SETA 1
-" --predefine="__UVISION_VERSION SETA 515" --predefine="_RTE_ SETA 1" --predefi
-ne="STM32F10X_MD SETA 1" --list=stm32f1xx_stucpuwalkpatkeil.lst ..\SelfTestUser
-\src_specific\stm32f1xx_STUCpuWalkpatKEIL.s
+stm32f1xx_stucpuwalkpatkeil.o -ID:\SoftDesign\20190311_QD007A_CTL\TT-KZ-010A_CT
+RL_APP\TT-KZ-010A_CTRL_APP\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CM
+SIS\Core\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include 
+--predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 515" --pred
+efine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_stucpuw
+alkpatkeil.lst ..\SelfTestUser\src_specific\stm32f1xx_STUCpuWalkpatKEIL.s
 
 
 

+ 6 - 6
MDK-ARM/stm32f1xx_sturamwalkpatkeil.lst

@@ -430,12 +430,12 @@ ARM Macro Assembler    Page 7
   331 000001F2                 END
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=.\qd007a_ctl_app\stm32f1xx_sturamwalkpatkeil.d -o.\qd007a_ctl_app\
-stm32f1xx_sturamwalkpatkeil.o -ID:\Documents\Work\SoftDesign\TT-KZ-010A_CTRL_AP
-P\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.4.0\CMSIS\Include -IC:\Keil_v5\
-ARM\PACK\Keil\STM32F1xx_DFP\1.1.0\Device\Include --predefine="__MICROLIB SETA 1
-" --predefine="__UVISION_VERSION SETA 515" --predefine="_RTE_ SETA 1" --predefi
-ne="STM32F10X_MD SETA 1" --list=stm32f1xx_sturamwalkpatkeil.lst ..\SelfTestUser
-\src_specific\stm32f1xx_STURamWalkpatKEIL.s
+stm32f1xx_sturamwalkpatkeil.o -ID:\SoftDesign\20190311_QD007A_CTL\TT-KZ-010A_CT
+RL_APP\TT-KZ-010A_CTRL_APP\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CM
+SIS\Core\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include 
+--predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 515" --pred
+efine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_sturamw
+alkpatkeil.lst ..\SelfTestUser\src_specific\stm32f1xx_STURamWalkpatKEIL.s
 
 
 

+ 2 - 2
User/Inc/eeprom_flash.h

@@ -22,8 +22,8 @@
 #define    EEPROM_FLASH_ADDR_GEARBOX_PARAMS      EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)236         //自动变速器控制参数 8bytes + 4bytes  
 #define    EEPROM_FLASH_ADDR_BATTERY_PARMAS      EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)248         //电池放电曲线参数 204bytes + 4bytes  
 
-#define    EEPROM_FLASH_ADDR_TEMP_BEGIN_ADDRESS    0x0801F400
-#define    EEPROM_FLASH_ADDR_TEMP_END_ADDRESS      0x0801F7FF
+#define    EEPROM_FLASH_ADDR_TEMP_BEGIN_ADDRESS    0x0801E800
+#define    EEPROM_FLASH_ADDR_TEMP_END_ADDRESS      0x0801EFFF
 
 #define    EEPROM_FLASH_ADDR_POWEROFF_BKP_FLAG   EEPROM_FLASH_ADDR_TEMP_BEGIN_ADDRESS               //掉电保存的关键数据标志 4bytes + 4bytes
 #define    EEPROM_FLASH_ADDR_POWEROFF_BKP        EEPROM_FLASH_ADDR_TEMP_BEGIN_ADDRESS + (uint32_t)8 //掉电保存的关键数据 40bytes + 4bytes

+ 2 - 2
User/Inc/log_save.h

@@ -5,8 +5,8 @@
 #include "motor_control.h"
 #include "eeprom_flash.h"
 
-#define LOG_ADDRESS_BEGIN               0x0801F800
-#define LOG_ADDRESS_END                 0x0801FBFF
+#define LOG_ADDRESS_BEGIN               0x0801F000
+#define LOG_ADDRESS_END                 0x0801F3FF
 
 //故障日志记录信息 64 bytes,1K空间可以保存最近16条故障记录
 typedef struct

+ 36 - 16
User/Src/remain_distance.c

@@ -475,18 +475,28 @@ uint8_t Battery_SocCal(Battery_Info_t* p_Battery_Info, BatterCellInfo_Struct_t*
 				//查表计算SOC
 				for(i=0; i<TableNum; i++)
 				{
-					if(p_CellInfo->CellParam[i] <= u16MaxVoltage)
+					if(i >= (TableNum - 1))
 					{
-						BatteryRemainQ = p_CellInfo->DesignCap - i * p_CellInfo->DesignCap / 100;
+						BatteryRemainQ = 0;
+						p_Battery_Info->Q_remain_record = BatteryRemainQ;
+						Result = 0;
 						break;
-					}
-					else//电池电压低于最小值
+					}					
+					else 
 					{
-						BatteryRemainQ = 0;
-					}
+						if(p_CellInfo->CellParam[i] <= u16MaxVoltage)
+						{
+							BatteryRemainQ = p_CellInfo->DesignCap - i * p_CellInfo->DesignCap / 100;
+							p_Battery_Info->Q_remain_record = BatteryRemainQ;
+							Result = TableNum - i - 1;
+							break;
+						}
+						else//电池电压低于最小值
+						{
+							BatteryRemainQ = 0;
+						}
+					}	
 				}
-        p_Battery_Info->Q_remain_record = BatteryRemainQ;				
-				return TableNum - i - 1;
 			}
 		}		
 	}
@@ -510,18 +520,28 @@ uint8_t Battery_SocCal(Battery_Info_t* p_Battery_Info, BatterCellInfo_Struct_t*
 			//查表计算SOC
 			for(i=0; i<TableNum; i++)
 			{
-				if(p_CellInfo->CellParam[i] <= u16MaxVoltage)
+		  	if(i >= (TableNum - 1))
 				{
-					BatteryRemainQ = p_CellInfo->DesignCap - i * p_CellInfo->DesignCap / 100;
+					BatteryRemainQ = 0;
+					p_Battery_Info->Q_remain_record = BatteryRemainQ;
+			    Result = 0;
 					break;
-				}
-				else//电池电压低于最小值
+				}					
+				else 
 				{
-					BatteryRemainQ = 0;
-				}
+					if(p_CellInfo->CellParam[i] <= u16MaxVoltage)
+					{
+						BatteryRemainQ = p_CellInfo->DesignCap - i * p_CellInfo->DesignCap / 100;
+						p_Battery_Info->Q_remain_record = BatteryRemainQ;
+						Result = TableNum - i - 1;
+						break;
+					}
+					else//电池电压低于最小值
+					{
+						BatteryRemainQ = 0;
+					}
+				}	
 			}
-			p_Battery_Info->Q_remain_record = BatteryRemainQ;
-			Result = TableNum - i - 1;
 			
 			//电量上升时,突变较小,取上次计算值
 			if(Result > Result_Pre)

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно