Przeglądaj źródła

V3.2.4_20210128
1、增加尾灯工作模式的配置,共设置4种模式,该程序工作于模式3;
2、调整LightDriver_Process处理函数;
3、IsBreakTrig_Flag初始化为FALSE,否则开机时会导致刹车灯亮1s左右;
4、修改掉电临时存储数据在Flash中的地址,单独建立1K空间,避免上电擦除时异常断电导致Flash中参数被擦除;
5、增加OBC和HMI设置的参数范围,避免引起异常;
6、修改PowerOff_Process函数,在接收到关机指令时,延迟5s退出,按键和BMS发送关机指令后延迟1s关闭ACC和电源;
7、版本号:V3.2.4_20210128

dail.zhou 4 lat temu
rodzic
commit
c158ae4147

+ 4 - 0
.gitignore

@@ -60,3 +60,7 @@ modules.order
 Module.symvers
 Mkfile.old
 dkms.conf
+/MDK-ARM/bin/MC_TTKZ010A_V7.0.0_20210128_1.bin
+/MDK-ARM/bin/MC_TTKZ010A_V7.0.0_20210120.bin
+/MDK-ARM/bin/MC_TTKZ010A_V7.0.0_20210120_1.bin
+/MDK-ARM/bin/MC_TTKZ010A_V7.0.0_20210128.bin

+ 3 - 6
Core/Src/main.c

@@ -174,11 +174,11 @@ int main(void)
 	}
 	
 	//掉电临时数据搬移到24C02
+	IsPowerOffDataBkp_SaveFlag = EEPROM_Flash_TempCheck();
 	SavePowerOffBakData(&I2C_Handle_EEPROM, IsPowerOffDataBkp_SaveFlag);//75ms
 		
 	//擦除临时掉电数据存储区域为0xFF
-	IsFlashSaveDataUpdate = TRUE;
-	EEPROM_Flash_DataUpdate(&IsFlashSaveDataUpdate);//113ms
+	EEPROM_Flash_Erase(EEPROM_FLASH_ADDR_TEMP_BEGIN_ADDRESS, EEPROM_FLASH_ADDR_TEMP_END_ADDRESS);//100ms
 	
 	//MC控制初始化
 	MC_Init();//339ms
@@ -257,10 +257,7 @@ int main(void)
 			
 			//检测刹车信号
 			Break_Check(&IsBreakTrig_Flag);
-			
-			//Light控制
-			LightDriver_Process(MC_ControlCode.LightSwitch);
-			
+						
 			//续航里程计算
 			if(HAL_GetTick() > 2000)
 			{

Plik diff jest za duży
+ 2528 - 2528
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/MC_TTKZ010A_V3.2.4_20210128.bin


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 6 - 2
User/Inc/eeprom_flash.h

@@ -19,8 +19,11 @@
 #define    EEPROM_FLASH_ADDR_CONFIG_PARAM2       EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)180         //配置参数2 32bytes + 4bytes
 #define    EEPROM_FLASH_ADDR_MOTOR_PARAM         EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)216         //马达参数 16bytes + 4bytes
 
-#define    EEPROM_FLASH_ADDR_POWEROFF_BKP        EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)768         //掉电保存的关键数据 40bytes + 4bytes
-#define    EEPROM_FLASH_ADDR_POWEROFF_BKP_FLAG   EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)812         //掉电保存的关键数据标志 4bytes + 4bytes
+#define    EEPROM_FLASH_ADDR_TEMP_BEGIN_ADDRESS    0x0801F400
+#define    EEPROM_FLASH_ADDR_TEMP_END_ADDRESS      0x0801F7FF
+
+#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
 
 extern TrueOrFalse_Flag_Struct_t IsPowerOffDataBkp_SaveFlag;
 extern TrueOrFalse_Flag_Struct_t IsFlashSaveDataUpdate;
@@ -31,5 +34,6 @@ extern int8_t ReadDataFromEEPROM_Flash(uint32_t FlashAddress, uint8_t* Data, uin
 extern void SaveDataToEEPROM_Flash(uint32_t FlashAddress, uint8_t* Data, uint8_t Length); // Length必须为4的倍数
 extern void EEPROM_Flash_Check(void);
 extern void EEPROM_Flash_DataUpdate(TrueOrFalse_Flag_Struct_t* IsUpdateFlag);
+extern TrueOrFalse_Flag_Struct_t EEPROM_Flash_TempCheck(void);
 
 #endif

+ 1 - 1
User/Inc/light_driver.h

@@ -10,6 +10,6 @@
 #define LIGHT_B_GPIO_Port GPIOA
 
 void LightDriver_Init(void);
-void LightDriver_Process(MC_LightSwitch_Struct_t LightSwitchCode);
+void LightDriver_Process(MC_TailLight_Mode_Struct_t TailLight_Mode, TrueOrFalse_Flag_Struct_t IsBreakFlag, MC_LightSwitch_Struct_t LightSwitchCode);
 
 #endif

+ 1 - 1
User/Inc/log_save.h

@@ -8,7 +8,7 @@
 #define LOG_ADDRESS_BEGIN               0x0801F800
 #define LOG_ADDRESS_END                 0x0801FBFF
 
-//故障日志记录信息 60 bytes,最后4 bytes 为预留 1K空间可以保存最近16条故障记录
+//故障日志记录信息 64 bytes,1K空间可以保存最近16条故障记录
 typedef struct
 {
 	uint16_t Error_Index;                    //故障列表索引 2 bytes, 地址偏移 0

+ 1 - 1
User/Inc/tasks.h

@@ -15,7 +15,7 @@ extern void MC_SendErrorCode_Process(MC_ErrorCode_Struct_t ErrorCode);
 extern void MC_SendRunInfo_Process(MC_WorkMode_Struct_t WorkMode);
 extern void MC_TE_SensorData_Process(MC_TE_SensorData_Struct_t* p_MC_TE_SensorData);
 extern uint8_t MC_CadenceLimit_Cal(uint8_t Cadence, uint16_t Current, uint8_t T_Coil);
-extern void PowerOff_Process(void);
+extern void PowerOff_Process(TrueOrFalse_Flag_Struct_t ReturnEnable);
 extern void MC_CanRxCheck_Process(MC_SupportFlag_Struct_t NoPBU_Flag, MC_SupportFlag_Struct_t NoHMI_Flag, MC_WorkMode_Struct_t WorkMode, MC_GearSt_Struct_t* GearSt);
 extern void MC_UartRxCheck_Process(void);
 extern void MC_RunTime_Cal(uint32_t* p_Runtime);

+ 10 - 1
User/Inc/var.h

@@ -136,6 +136,14 @@ typedef enum MC_SUPPORTFLAG
 	MC_SUPPORT_DISABLE = (uint8_t)0x55  //不支持
 }MC_SupportFlag_Struct_t;
 
+typedef enum MC_TAIL_LIGHT_MODE
+{
+  MC_TAIL_LIGHT_MODE1 = (uint8_t)0x01,  //模式1,连接尾灯,开灯时低亮,刹车时高亮
+	MC_TAIL_LIGHT_MODE2 = (uint8_t)0x02,  //模式2,连接尾灯,开灯时高亮,刹车时闪烁
+	MC_TAIL_LIGHT_MODE3 = (uint8_t)0x03,  //模式3,连接刹车灯,刹车时高亮
+	MC_TAIL_LIGHT_MODE4 = (uint8_t)0x04   //模式4,连接刹车灯,刹车时闪烁
+}MC_TailLight_Mode_Struct_t;
+
 //用户配置参数1,占用空间32bytes
 typedef struct
 {
@@ -172,7 +180,8 @@ typedef struct
   int16_t ZeroAngle_Pitch;         //俯仰角零度偏移,地址偏移0
 	int16_t ZeroAngle_Roll;          //横滚角零度偏移,地址偏移2
 	MC_SupportFlag_Struct_t UseAttitudeAngle_Flag; //支持姿态角度传感器标志,地址偏移4
-	uint8_t RS2[27];//地址偏移5
+	MC_TailLight_Mode_Struct_t MC_TailLight_Mode;  //尾灯功能,地址偏移5
+	uint8_t RS2[26];//地址偏移6
 }MC_ConfigParam2_Struct_t;
 
 //姿态传感器数值

+ 35 - 3
User/Src/can_process.c

@@ -91,7 +91,7 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 				}
 				case 0x1308://关机指令
 				{					
-					PowerOff_Process();
+					PowerOff_Process(FALSE);
 					break;
 				}
 				case 0x1410://电池设计信息
@@ -131,7 +131,7 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 				//PBU广播的指令
         case 0x1008://PBU关机指令
 				{
-					PowerOff_Process();
+					PowerOff_Process(FALSE);
 					break;
 				}
 				case 0x120C://PBU物理ID
@@ -189,6 +189,14 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 				case 0x3408://OBC设置用户参数
 				{
 				  MC_ConfigParam1.WheelSizeAdj = (int8_t)Data[0];
+					if(MC_ConfigParam1.WheelSizeAdj > 10)
+					{
+						MC_ConfigParam1.WheelSizeAdj = 10;
+					}
+					if(MC_ConfigParam1.WheelSizeAdj < -10)
+					{
+						MC_ConfigParam1.WheelSizeAdj = -10;
+					}
 					MC_ConfigParam1.StarModel = (MC_StarMode_Struct_t)Data[1];
 					IsFlashSaveDataUpdate = TRUE;
 					SendData(ID_MC_TO_PBU, MODE_REPORT, 0x5303, (uint8_t*)"ACK");
@@ -241,7 +249,23 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 				case 0x3810://ECU设置用户参数
 				{
 			  	MC_ConfigParam1.WheelSize = Data[0];
+					if(MC_ConfigParam1.WheelSize > 250)
+					{
+					  MC_ConfigParam1.WheelSize = 250;
+					}
+					if(MC_ConfigParam1.WheelSize < 120)
+					{
+					  MC_ConfigParam1.WheelSize = 120;
+					}
 					MC_ConfigParam1.SpeedLimit = Data[1];
+					if(MC_ConfigParam1.SpeedLimit > 99)
+					{
+					  MC_ConfigParam1.SpeedLimit = 99;
+					}
+					if(MC_ConfigParam1.SpeedLimit < 5)
+					{
+					  MC_ConfigParam1.SpeedLimit = 5;
+					}
 					//Data[2]和Data[3]低压保护值暂不处理
 					SaveParamToEEprom_24C02(&I2C_Handle_EEPROM, EEPROM_24C02_ADDR_CONFIG_PARAM1, sizeof(MC_ConfigParam1), (uint8_t*)&MC_ConfigParam1.GasCtrlMode_Flag);
 					SendData(ID_MC_TO_PBU, MODE_REPORT, 0x5303, (uint8_t*)"ACK");
@@ -308,6 +332,14 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 				case 0x3208://设置电机配置参数
 				{
 					MC_ConfigParam1.WheelSizeAdj = (int8_t)Data[0];
+					if(MC_ConfigParam1.WheelSizeAdj > 10)
+					{
+						MC_ConfigParam1.WheelSizeAdj = 10;
+					}
+					if(MC_ConfigParam1.WheelSizeAdj < -10)
+					{
+						MC_ConfigParam1.WheelSizeAdj = -10;
+					}
 					MC_ConfigParam1.StarModel = (MC_StarMode_Struct_t)Data[1];
 					IsFlashSaveDataUpdate = TRUE;
 					SendData(ID_MC_TO_HMI, MODE_REPORT, 0x7403, (uint8_t*)"ACK");
@@ -506,7 +538,7 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 				  if(strncmp("RESET", (char*)Data, DataLength) == 0)
 					{
 						SendData(ID_MC_TO_CDL, MODE_REPORT, 0xA903, (uint8_t*)"ACK");
-						PowerOff_Process();
+						PowerOff_Process(TRUE);
 		    	  HAL_Delay(100);
 			      __set_FAULTMASK(1);//关闭所有中断
 			      HAL_NVIC_SystemReset();

+ 24 - 17
User/Src/eeprom_flash.c

@@ -99,22 +99,7 @@ static void CopyDataFromEEPROM_Flash(void)
 	{
   	memcpy((uint8_t*)&MC_MotorParam.Rate_Power, Data_Buf, sizeof(MC_MotorParam_Struct_t));
 	}
-		
-	//读取掉电临时保存的数据
-	Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP_FLAG, Data_Buf, 4);
-	if(Error_OK == 0)
-	{
-	  if(strncmp("FLAG", (char*)Data_Buf, 4) == 0) //关机前进行过存储
-		{
-			Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP, Data_Buf, 40);
-			if(Error_OK == 0)
-			{
-				memcpy((uint8_t*)&MC_PowerOffBkp.ODO_Km, Data_Buf, 40);
-				IsPowerOffDataBkp_SaveFlag = TRUE;
-			}	
-		}
-	}
-	
+			
 }
 
 /****************************全局函数定义******************************/
@@ -164,7 +149,7 @@ void EEPROM_Flash_Erase(uint32_t BeginAddress, uint32_t EndAddress)
 int8_t ReadDataFromEEPROM_Flash(uint32_t FlashAddress, uint8_t* Data, uint8_t Length) // Length必须为4的倍数
 {
   uint32_t DataTemp32[8], CRC_Data, CRC_Result;
-	uint8_t CRC_Buf[40], i;
+	uint8_t CRC_Buf[64], i;
 	
 	Length = Length >> 2;//按照32bit读取
   for(i=0; i<Length; i++)
@@ -244,3 +229,25 @@ void EEPROM_Flash_DataUpdate(TrueOrFalse_Flag_Struct_t* IsUpdateFlag)
 		*IsUpdateFlag = FALSE;
 	}
 }
+
+TrueOrFalse_Flag_Struct_t EEPROM_Flash_TempCheck(void)
+{
+  uint8_t Data_Buf[64];
+	int8_t Error_OK;
+	
+	//读取掉电临时保存的数据
+	Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP_FLAG, Data_Buf, 4);
+	if(Error_OK == 0)
+	{
+	  if(strncmp("FLAG", (char*)Data_Buf, 4) == 0) //关机前进行过存储
+		{
+			Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_POWEROFF_BKP, Data_Buf, 40);
+			if(Error_OK == 0)
+			{
+				memcpy((uint8_t*)&MC_PowerOffBkp.ODO_Km, Data_Buf, 40);
+				return TRUE;
+			}	
+		}
+	}
+	return FALSE;
+}

+ 1 - 1
User/Src/key_driver.c

@@ -1,6 +1,6 @@
 #include "key_driver.h"
 
-TrueOrFalse_Flag_Struct_t IsBreakTrig_Flag;
+TrueOrFalse_Flag_Struct_t IsBreakTrig_Flag = FALSE;
 TrueOrFalse_Flag_Struct_t IsGearSensorTrig_Flag = FALSE;//ąäËŮ´Ť¸ĐĆ÷ąęÖž
 
 Key_TypeDef Key_Break_Left;

+ 114 - 5
User/Src/light_driver.c

@@ -25,16 +25,125 @@ void LightDriver_Init(void)
   HAL_GPIO_Init(LIGHT_B_GPIO_Port, &GPIO_InitStruct);
 }
 
-void LightDriver_Process(MC_LightSwitch_Struct_t LightSwitchCode)
-{
-  if(LightSwitchCode == MC_LightSwitch_ON)
+void LightDriver_Process(MC_TailLight_Mode_Struct_t TailLight_Mode, TrueOrFalse_Flag_Struct_t IsBreakFlag, MC_LightSwitch_Struct_t LightSwitchCode)
+{	
+	//控制前灯
+	if(LightSwitchCode == MC_LightSwitch_ON)
 	{
 		HAL_GPIO_WritePin(LIGHT_F_GPIO_Port, LIGHT_F_Pin, GPIO_PIN_SET);
-		HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_SET);
 	}
 	else if(LightSwitchCode == MC_LightSwitch_OFF)
 	{
 		HAL_GPIO_WritePin(LIGHT_F_GPIO_Port, LIGHT_F_Pin, GPIO_PIN_RESET);
-		HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_RESET);
+	}
+	
+	//控制尾灯
+	static uint16_t FlashTimeCnt = 0;
+	uint16_t OnTime = 8;
+	uint16_t Period = 15;
+	switch(TailLight_Mode)
+	{
+	  case MC_TAIL_LIGHT_MODE1://连接尾灯,开灯时低亮,刹车时高亮
+		{
+			if(IsBreakFlag == TRUE)//刹车时,高亮
+			{
+				HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_SET);
+				FlashTimeCnt = 0;
+			}
+			else//无刹车时,开灯低亮
+			{
+				if(LightSwitchCode == MC_LightSwitch_ON)
+				{
+					if(FlashTimeCnt < OnTime)
+					{
+						HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_SET);
+					}
+					else if(FlashTimeCnt < Period) //控制周期:15K / Period
+					{
+						HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_RESET);
+					}
+					else
+					{
+						FlashTimeCnt = 0;
+					}
+					FlashTimeCnt++;
+				}
+				else if(LightSwitchCode == MC_LightSwitch_OFF)
+				{
+					HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_RESET);
+					FlashTimeCnt = 0;
+				}
+			}
+			break;
+		}
+		case MC_TAIL_LIGHT_MODE2: default://连接尾灯,开灯时高亮,刹车时闪烁
+		{
+			if(IsBreakFlag == TRUE)//刹车时,快闪
+			{
+				if(FlashTimeCnt < 600)
+				{
+					HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_SET);
+				}
+				else if(FlashTimeCnt < 1200) //闪烁频率:15K / 1200 = 12.5Hz
+				{
+					HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_RESET);
+				}
+				else
+				{
+					FlashTimeCnt = 0;
+				}
+				FlashTimeCnt++;
+			}
+			else//无刹车时,开灯亮
+			{
+				if(LightSwitchCode == MC_LightSwitch_ON)
+				{
+					HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_SET);
+				}
+				else if(LightSwitchCode == MC_LightSwitch_OFF)
+				{
+					HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_RESET);
+				}
+				FlashTimeCnt = 0;
+			}	
+			break;
+		}
+		case MC_TAIL_LIGHT_MODE3://连接刹车灯,刹车高亮
+		{
+		  if(IsBreakFlag == TRUE)//刹车时,高亮
+			{
+				HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_SET);
+			}
+			else//无刹车时,关闭
+			{
+				HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_RESET);
+			}
+			break;
+		}
+		case MC_TAIL_LIGHT_MODE4://连接刹车灯,刹车闪烁
+		{
+	  	if(IsBreakFlag == TRUE)//刹车时,快闪
+			{
+				if(FlashTimeCnt < 600)
+				{
+					HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_SET);
+				}
+				else if(FlashTimeCnt < 1200) //闪烁频率:15K / 1200 = 12.5Hz
+				{
+					HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_RESET);
+				}
+				else
+				{
+					FlashTimeCnt = 0;
+				}
+				FlashTimeCnt++;
+			}
+			else//无刹车时,关闭
+			{
+				HAL_GPIO_WritePin(LIGHT_B_GPIO_Port, LIGHT_B_Pin, GPIO_PIN_RESET);
+				FlashTimeCnt = 0;
+			}	
+			break;
+		}
 	}
 }

+ 25 - 1
User/Src/tasks.c

@@ -522,9 +522,11 @@ uint8_t MC_CadenceLimit_Cal(uint8_t Cadence, uint16_t Current, uint8_t T_Coil)
 }
 
 //接收到关机指令处理
-void PowerOff_Process(void)
+void PowerOff_Process(TrueOrFalse_Flag_Struct_t ReturnEnable)
 {
   static FlagStatus SaveFlag = RESET;
+	static uint32_t PeriodTimeCnt = 0;
+	static uint8_t Count = 0;
 	
 	//关闭助力档位
 	MC_ControlCode.GearSt = MC_GearSt_OFF;
@@ -546,6 +548,28 @@ void PowerOff_Process(void)
 	
 	//发送关机就绪信号
 	SendData(ID_MC_BC, MODE_REPORT, 0x1305, (uint8_t*)"READY");
+	
+	//等待关机
+	if(ReturnEnable == TRUE)
+	{
+	  return;
+	}
+	else
+	{
+		PeriodTimeCnt = HAL_GetTick();
+		Count = 0;
+	  while(Count < 50)
+		{
+		  if((HAL_GetTick() - PeriodTimeCnt) > 100)
+			{
+			  PeriodTimeCnt = HAL_GetTick();
+				Count++;
+				#if DEBUG
+			  HAL_IWDG_Refresh(&hiwdg);
+			  #endif
+			}
+		}
+	}
 }
 
 //CAN设备PBU、HMI、BMS通信状态检测处理

+ 5 - 0
User/Src/tim.c

@@ -43,6 +43,8 @@
 #include "MC_Globals.h"
 #include "MC_FOC_Driver.h"
 #include "protect_check.h"
+#include "light_driver.h"
+#include "key_driver.h"
 
 /* USER CODE END 0 */
 
@@ -385,6 +387,9 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
 	}
 	#endif
 	
+	//Light¿ØÖÆ
+	LightDriver_Process(MC_ConfigParam2.MC_TailLight_Mode, IsBreakTrig_Flag, MC_ControlCode.LightSwitch);
+	
 	//ADC²É¼¯·ÖƵ
 	ADC_PreCnt++;
 	if(ADC_PreCnt >= 5)

+ 4 - 3
User/Src/var.c

@@ -90,7 +90,8 @@ const MC_ConfigParam2_Struct_t MC_ConfigParam2_Default =
 {
   (int16_t)0,
 	(int16_t)0,
-	(MC_SupportFlag_Struct_t)MC_SUPPORT_DISABLE     //0x55-不支持,0x-AA支持
+	(MC_SupportFlag_Struct_t)MC_SUPPORT_DISABLE,     //0x55-不支持,0x-AA支持
+	(MC_TailLight_Mode_Struct_t)MC_TAIL_LIGHT_MODE2, 
 };
 
 //MC默认马达参数,占用16bytes
@@ -490,11 +491,11 @@ void Var_Init(void)
 		
 	//MC版本信息初始化,Mode和SN从EEPROM读取
   strncpy(MC_VerInfo.HW_Version, (char*)"TT_KZ_010D.     ", 16);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V3r2r3_20201203.", 16);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V3r2r4_20210128.", 16);
 	strncpy(Firmware_Special, (char*)"TC011000-MS0000-V0r0.           ", 32);
 	
 	//电机型号
-	strncpy(MC_VerInfo.Mode, (char*)"PG8000 & PSX000.", 16);
+	strncpy(MC_VerInfo.Mode, (char*)"PG8010 & PSX010.", 16);
 	
 	//电机序列号
 	strncpy(MC_VerInfo.SN_Num, (char*)"0000000000000000", 16);

+ 38 - 0
修改说明.txt

@@ -339,6 +339,44 @@ V3.2.3_20201203
 5、修改刹车和GearSensor信号的检测方法,增加延时,避免信号抖动引起异常停机;
 6、版本号:V3.2.3_20201203。
 
+V7.0.0_20210120
+1、基于V3.2.3_20201203修改波特率为250K;
+2、版本号:V7.0.0_20210120
+
+V7.0.0_20210120
+1、增加尾灯工作模式的配置,共设置4种模式,该程序工作于模式3;
+2、调整LightDriver_Process处理函数;
+3、IsBreakTrig_Flag初始化为FALSE,否则开机时会导致刹车灯亮1s左右;
+4、版本号:V7.0.0_20210120
+
+V7.0.0_20210128
+1、修改掉电临时存储数据在Flash中的地址,单独建立1K空间,避免上电擦除时异常断电导致Flash中参数被擦除;
+2、增加OBC和HMI设置的参数范围,避免引起异常;
+3、修改PowerOff_Process函数,在接收到关机指令时,延迟5s退出,按键和BMS发送关机指令后延迟1s关闭ACC和电源;
+4、版本号:V7.0.0_20210128
+
+V3.2.4_20210128
+1、增加尾灯工作模式的配置,共设置4种模式,该程序工作于模式3;
+2、调整LightDriver_Process处理函数;
+3、IsBreakTrig_Flag初始化为FALSE,否则开机时会导致刹车灯亮1s左右;
+4、修改掉电临时存储数据在Flash中的地址,单独建立1K空间,避免上电擦除时异常断电导致Flash中参数被擦除;
+5、增加OBC和HMI设置的参数范围,避免引起异常;
+6、修改PowerOff_Process函数,在接收到关机指令时,延迟5s退出,按键和BMS发送关机指令后延迟1s关闭ACC和电源;
+7、版本号:V3.2.4_20210128
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 
 

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików