Explorar el Código

发给客户测试版本,待自测。

Deyauo hace 9 meses
padre
commit
33a2a5df32

+ 31 - 0
Core/Src/main.c

@@ -364,6 +364,37 @@ int main(void)
 			//变速器处理
 			GearBox_Loop();
 			
+			//Boost处理
+			do
+			{
+			  switch(Gear_BoostStatus)
+				{
+				  case 0:
+					{
+					
+						break;
+					}
+					case 1: //进入Boost后,超时10s自动退出,并锁死
+					{
+					  if((HAL_GetTick() - Gear_BoostDelayCnt) > 12000)
+						{
+							Gear_BoostStatus = 2;
+							Gear_BoostReEnterCnt = HAL_GetTick();
+						}
+						break;
+					}
+					case 2: //进入锁住状态,超时30s退出
+					{
+					  if((HAL_GetTick() - Gear_BoostReEnterCnt) > 30000)
+						{
+							Gear_BoostStatus = 0;
+						}
+						break;
+					}
+					default: break;
+				}
+			}while(0);
+			
       //MCU自检
 			STU_TimeBase();
 			STU_DoRunTimeChecks();

+ 3 - 3
MDK-ARM/QD007A_CTL_APP.uvprojx

@@ -14,7 +14,7 @@
         <TargetCommonOption>
           <Device>STM32F103RB</Device>
           <Vendor>STMicroelectronics</Vendor>
-          <PackID>Keil.STM32F1xx_DFP.2.3.0</PackID>
+          <PackID>Keil.STM32F1xx_DFP.1.1.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>
@@ -81,7 +81,7 @@
             <RunUserProg1>1</RunUserProg1>
             <RunUserProg2>1</RunUserProg2>
             <UserProg1Name>C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bincombined  --output ./bin/QD007A_CTL_APP.bin ./QD007A_CTL_APP/QD007A_CTL_APP.axf</UserProg1Name>
-            <UserProg2Name>E:\SoftDesign\20190311_QD007A_CTL\QD007E_CTRL_APP\QD007E_CTRL_APP\MDK-ARM\crc_gen_keil.bat</UserProg2Name>
+            <UserProg2Name>C:\Users\hero\Desktop\mototcontrol\MDK-ARM\crc_gen_keil.bat</UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
             <nStopA1X>0</nStopA1X>
@@ -367,7 +367,7 @@
             <v6LangP>0</v6LangP>
             <VariousControls>
               <MiscControls></MiscControls>
-              <Define>USE_HAL_DRIVER,STM32F103xB,VOLANS_36V,BARD_250K</Define>
+              <Define>USE_HAL_DRIVER,STM32F103xB,VOLANS_48V,BARD_250K</Define>
               <Undefine></Undefine>
               <IncludePath>../Core/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include;../Drivers/CMSIS/Include;..\User\Inc;..\SEGGER_RTT\Inc;..\SelfTestUser\Inc</IncludePath>
             </VariousControls>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 2452 - 2452
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 5 - 5
MDK-ARM/startup_stm32f103xb.lst

@@ -524,11 +524,11 @@ ork --depend=.\qd007a_ctl_app\startup_stm32f103xb.d -o.\qd007a_ctl_app\startup_
 ARM Macro Assembler    Page 9 
 
 
-stm32f103xb.o -IE:\SoftDesign\20190311_QD007A_CTL\QD007E_CTRL_APP\QD007E_CTRL_A
-PP\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\Include -IC:\Keil_v5
-\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include --predefine="__MICROLIB SETA 
-1" --predefine="__UVISION_VERSION SETA 515" --predefine="_RTE_ SETA 1" --predef
-ine="STM32F10X_MD SETA 1" --list=startup_stm32f103xb.lst startup_stm32f103xb.s
+stm32f103xb.o -IC:\Users\hero\Desktop\mototcontrol\MDK-ARM\RTE -IC:\Keil_v5\ARM
+\PACK\ARM\CMSIS\5.6.0\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_D
+FP\1.1.0\Device\Include --predefine="__MICROLIB SETA 1" --predefine="__UVISION_
+VERSION SETA 515" --predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" 
+--list=startup_stm32f103xb.lst startup_stm32f103xb.s
 
 
 

+ 6 - 6
MDK-ARM/stm32f1xx_stucpuregsaddressing.lst

@@ -123,18 +123,18 @@ 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 -IE:\SoftDesign\20190311_QD007A_CTL\QD007E_
-CTRL_APP\QD007E_CTRL_APP\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSI
-S\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include --prede
-fine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 515" --predefine="
-_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_stucpuregsaddr
+pp\stm32f1xx_stucpuregsaddressing.o -IC:\Users\hero\Desktop\mototcontrol\MDK-AR
+M\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\Core\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" --predefine=
+"STM32F10X_MD SETA 1" --list=stm32f1xx_stucpuregsaddressing.lst ..\SelfTestUser
 
 
 
 ARM Macro Assembler    Page 3 
 
 
-essing.lst ..\SelfTestUser\src_specific\stm32f1xx_STUCpuRegsAddressing.s
+\src_specific\stm32f1xx_STUCpuRegsAddressing.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 -IE:\SoftDesign\20190311_QD007A_CTL\QD007E_CTRL_A
-PP\QD007E_CTRL_APP\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\Incl
-ude -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include --predefine="
-__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 515" --predefine="_RTE_ 
-SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_stucpuwalkpatkeil.ls
-t ..\SelfTestUser\src_specific\stm32f1xx_STUCpuWalkpatKEIL.s
+stm32f1xx_stucpuwalkpatkeil.o -IC:\Users\hero\Desktop\mototcontrol\MDK-ARM\RTE 
+-IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\
+Keil\STM32F1xx_DFP\1.1.0\Device\Include --predefine="__MICROLIB SETA 1" --prede
+fine="__UVISION_VERSION SETA 515" --predefine="_RTE_ SETA 1" --predefine="STM32
+F10X_MD SETA 1" --list=stm32f1xx_stucpuwalkpatkeil.lst ..\SelfTestUser\src_spec
+ific\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 -IE:\SoftDesign\20190311_QD007A_CTL\QD007E_CTRL_A
-PP\QD007E_CTRL_APP\MDK-ARM\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\Incl
-ude -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include --predefine="
-__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 515" --predefine="_RTE_ 
-SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_sturamwalkpatkeil.ls
-t ..\SelfTestUser\src_specific\stm32f1xx_STURamWalkpatKEIL.s
+stm32f1xx_sturamwalkpatkeil.o -IC:\Users\hero\Desktop\mototcontrol\MDK-ARM\RTE 
+-IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.6.0\CMSIS\Core\Include -IC:\Keil_v5\ARM\PACK\
+Keil\STM32F1xx_DFP\1.1.0\Device\Include --predefine="__MICROLIB SETA 1" --prede
+fine="__UVISION_VERSION SETA 515" --predefine="_RTE_ SETA 1" --predefine="STM32
+F10X_MD SETA 1" --list=stm32f1xx_sturamwalkpatkeil.lst ..\SelfTestUser\src_spec
+ific\stm32f1xx_STURamWalkpatKEIL.s
 
 
 

+ 2 - 1
User/Inc/motor_control.h

@@ -79,8 +79,9 @@ extern MC_CalParam_Struct_t MC_CalParam;
 extern MC_CalParam_Struct_t MC_CalParam_Back;
 extern uint8_t MC_CadenceLimit_K;
 extern FlagStatus MC_StarFlag;
-extern MC_GearSt_Struct_t Gear_BoostOld;
+extern uint8_t Gear_BoostStatus;
 extern uint32_t Gear_BoostDelayCnt;
+extern uint32_t Gear_BoostReEnterCnt;
 
 #define Update_MC_ControlCode_Back()    { MC_ControlCode_Back.GearSt = (MC_GearSt_Struct_t)~MC_ControlCode.GearSt;\
 		                                      MC_ControlCode_Back.LightSwitch = (MC_LightSwitch_Struct_t)~MC_ControlCode.LightSwitch; }

+ 25 - 6
User/Src/can_process.c

@@ -151,17 +151,36 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 				//PBU/OBC发送给MC的指令
 				case 0x3002://控制电机指令
 				{
-				  if(MC_WorkMode != MC_WorkMode_Config)
+				    if(MC_WorkMode != MC_WorkMode_Config)
 					{
 						memcpy(&MC_ControlCode.GearSt, Data, DataLength);
 						Update_MC_ControlCode_Back();
 					}		
-          if(MC_ControlCode.GearSt == MC_GearSt_Torque_BOOST)	
+					if(Gear_BoostStatus == 0) //退出状态可直接进入,开始倒计时
 					{
-					  Gear_BoostOld = MC_GearSt_SMART;
-						Gear_BoostDelayCnt = HAL_GetTick();
-					}						
-		      MC_RunInfo.GearSt = MC_ControlCode.GearSt;//当前助力档位更新
+					    if(MC_ControlCode.GearSt == MC_GearSt_Torque_BOOST)	
+					    {
+						    Gear_BoostDelayCnt = HAL_GetTick();
+							Gear_BoostStatus = 1;
+					    }	
+					}
+					else if(Gear_BoostStatus == 1) //进入
+					{
+					    if(MC_ControlCode.GearSt != MC_GearSt_Torque_BOOST)	
+					    {
+						    Gear_BoostDelayCnt = HAL_GetTick();
+							Gear_BoostStatus = 0;
+					    }	
+					}
+				    else if(Gear_BoostStatus == 2) //锁死
+					{
+					    if(MC_ControlCode.GearSt == MC_GearSt_Torque_BOOST)	
+					    {  
+					        MC_ControlCode.GearSt = MC_GearSt_SMART;
+					    }	
+					}
+									
+		            MC_RunInfo.GearSt = MC_ControlCode.GearSt;//当前助力档位更新
 					MC_RunInfo.LightSwitch = MC_ControlCode.LightSwitch;
 					SendData(ID_MC_BC, MODE_REPORT, 0x1020, (uint8_t*)&MC_RunInfo.BikeSpeed);
 					//PBU通信正常标志置位

+ 3 - 2
User/Src/motor_control.c

@@ -33,8 +33,9 @@ FlagStatus MC_StarFlag = RESET;
 //下降速度参数表
 uint8_t MC_CurrentDecTable[5] = {5, 7, 10, 14, 21};
 //Boost模式参数
-MC_GearSt_Struct_t Gear_BoostOld;
-uint32_t Gear_BoostDelayCnt;
+uint8_t Gear_BoostStatus = 0; //0-退出,1-进入,2-锁住防止再次进入
+uint32_t Gear_BoostDelayCnt; //进入后倒计时
+uint32_t Gear_BoostReEnterCnt; //退出后倒计时
 
 /*************************局部函数定义***********************/
 //设定值线性变化处理

+ 4 - 3
User/Src/var.c

@@ -680,9 +680,9 @@ void Var_Init(void)
 	
   //软件版本	
 	#if defined BARD_250K
-  strncpy(MC_VerInfo.FW_Version, (char*)"V6r2r2_20231121C", 16);
+  strncpy(MC_VerInfo.FW_Version, (char*)"V6r2r2_20241108C", 16);
 	#elif defined BARD_125K
-	strncpy(MC_VerInfo.FW_Version, (char*)"V2r3r2_20231121C", 16);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V2r3r2_20241108C", 16);
 	#else
 	Error();
 	#endif
@@ -692,7 +692,7 @@ void Var_Init(void)
 	#endif
 	
 	//软件标识
-	strncpy(Firmware_Special, (char*)"TC011000-MS0000-V0r1.           ", 32);
+	strncpy(Firmware_Special, (char*)"TC011000-MS0000-V0r2.           ", 32);
 	//编译时间
 	do
 	{
@@ -804,6 +804,7 @@ void UpdateGearParam(uint8_t SerialNum)
 			memcpy((uint8_t*)&MC_AssisParam.Gear_SPORT.Gain_K, (uint8_t*)&GearParam_Default_SPORT_Volans_Plus.Gain_K, sizeof(nGearParam_Struct_t));
 			memcpy((uint8_t*)&MC_AssisParam.Gear_TURBO.Gain_K, (uint8_t*)&GearParam_Default_TURBO_Volans_Plus.Gain_K, sizeof(nGearParam_Struct_t));
 			memcpy((uint8_t*)&MC_AssisParam.Gear_SMART.Gain_K, (uint8_t*)&GearParam_Default_SMART_Volans_Plus.Gain_K, sizeof(nGearParam_Struct_t));
+			memcpy((uint8_t*)&MC_AssisParam.Gear_BOOST.Gain_K, (uint8_t*)&GearParam_Default_BOOST_Volans_Plus.Gain_K, sizeof(nGearParam_Struct_t));
 			if(MC_TorqueCorrectParam.CalibrateEnableFlag == 0xAA)
 			{
 				MC_AssisParam.Gear_ECO.Gain_K = 714;

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio