浏览代码

20210630 V2.0.5
1 为兼容GD32F103MCU,屏蔽SMPR1和SMPR2寄存器微故障检测;
2 修改串口解析函数,解决GD32与STM32串口不能正常通信问题;
3 增加代码,按键在任何模式下接受到屏幕应答指令后不再发指令;
4 将按键检测阈值由4000将为3000;
5 HK32F103时钟检测功能错误,修改固件库IO口初始化函数;
6 解决威狐屏闪烁问题;
7 修改版本号;

white.xu 4 年之前
父节点
当前提交
82d39d7df8
共有 6 个文件被更改,包括 22 次插入16 次删除
  1. 9 9
      STU/src_middlewares/stm32f1xx_STUperipheralRegisters.c
  2. 1 1
      Src/tim.c
  3. 0 1
      Src/usart.c
  4. 1 1
      Src_app/functional_safety_key.c
  5. 10 3
      Src_app/tasks.c
  6. 1 1
      Src_app/var.c

+ 9 - 9
STU/src_middlewares/stm32f1xx_STUperipheralRegisters.c

@@ -439,15 +439,15 @@ uint8_t ADC_register_selftest(ADC_TypeDef* ADCx)
 //	val=ADCx->SMPR1;
 //		if(val!=0x00AAAAAA)
 //				return  (0);
-	//////////SMPR2//////////////	
-	ADCx->SMPR2=0x15555555;
-	val=ADCx->SMPR2;
-	if(val!=0x15555555)
-				return  (0);
-	ADCx->SMPR2=0x2AAAAAAA;
-	val=ADCx->SMPR2;
-		if(val!=0x2AAAAAAA)
-				return  (0);				
+//	//////////SMPR2//////////////	
+//	ADCx->SMPR2=0x15555555;
+//	val=ADCx->SMPR2;
+//	if(val!=0x15555555)
+//				return  (0);
+//	ADCx->SMPR2=0x2AAAAAAA;
+//	val=ADCx->SMPR2;
+//		if(val!=0x2AAAAAAA)
+//				return  (0);				
 	//////////JOFR1 //////////////	
 	ADCx->JOFR1=0x00000555;
 	val=ADCx->JOFR1;

+ 1 - 1
Src/tim.c

@@ -96,7 +96,7 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
     PA0     ------> TIM2_ETR 
     */
     GPIO_InitStruct.Pin = GPIO_PIN_0;
-    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
     GPIO_InitStruct.Pull = GPIO_NOPULL;
     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

+ 0 - 1
Src/usart.c

@@ -466,7 +466,6 @@ void Uart_RxData_Process(USART_Buf_TypeDef *ptUARTRx, uint16_t TimeOutCnt)
 	uint8_t FrameBegin1, FrameBegin2;
 	static uint32_t DelayTimeCnt1 = 0;
 	static TrueOrFalse_Flag_Struct_t IsWaitRX_Flag = FALSE;
-	static uint16_t step=0;
 	/* Detect the data size of the buffer area to meet the minimum frame length */
 	if(ptUARTRx->ucBufCnt >= 13)
 	{

+ 1 - 1
Src_app/functional_safety_key.c

@@ -409,7 +409,7 @@ void Power_Mos_Check(void)
 
 void Vin_test_Check(void)
 {
-	if((ADC_Result[0]<4000)&&(ADC_Result[0]>1000))
+	if((ADC_Result[0]<3000)&&(ADC_Result[0]>1000))
 	{	
 		Vin_test_TimeCnt=SysTime_5ms;
 	}			

+ 10 - 3
Src_app/tasks.c

@@ -150,12 +150,14 @@ static void _Task_KeyScan(void)
 							PBU_AssitMode_Status.IsSmartEtrWalk_Flag = FALSE;
 							PBU_AssitMode_Status.PBU_WalkSbyProcess.DelayTimeCnt = SysTime_5ms;
 							PBU_AssitMode_Status.PBU_WalkSbyProcess.HMI_ACK_Flag = FALSE;
+							PBU_AssitMode_Status.PBU_WalkSbyProcess.SendCodeTimeCnt_WalkSby = 0;						
 						}
 						else
 						{
 							PBU_AssitMode_Status.PBU_AssistMode_Flag = PBU_AssistMode_Flag_Gear;
 							PBU_AssitMode_Status.PBU_WalkSbyProcess.DelayTimeCnt = SysTime_5ms;
 							PBU_AssitMode_Status.PBU_WalkSbyProcess.HMI_ACK_Flag = FALSE;
+							PBU_AssitMode_Status.PBU_WalkSbyProcess.SendCodeTimeCnt_WalkSby = 0;						
 						}
 					}
 					else//进入推行等待
@@ -171,7 +173,7 @@ static void _Task_KeyScan(void)
 						PBU_AssitMode_Status.PBU_AssistMode_Flag = PBU_AssistMode_Flag_WalkSby;
 						PBU_AssitMode_Status.GearStBak_Walk = ControlCode.GearSt;
 						PBU_AssitMode_Status.WalkDelayTimeCnt = SysTime_5ms;
-						PBU_AssitMode_Status.PBU_WalkSbyProcess.SendCodeTimeCnt_WalkSby = SysTime_5ms;
+						PBU_AssitMode_Status.PBU_WalkSbyProcess.SendCodeTimeCnt_WalkSby = 0;
 						PBU_AssitMode_Status.PBU_WalkSbyProcess.HMI_ACK_Flag = FALSE;
 						PBU_AssitMode_Status.PBU_WalkSbyProcess.DelayTimeCnt = SysTime_5ms;
 					}
@@ -211,12 +213,14 @@ static void _Task_KeyScan(void)
 						PBU_AssitMode_Status.IsSmartEtrWalk_Flag = FALSE;
 						PBU_AssitMode_Status.PBU_WalkSbyProcess.DelayTimeCnt = SysTime_5ms;
 							PBU_AssitMode_Status.PBU_WalkSbyProcess.HMI_ACK_Flag = FALSE;
+						PBU_AssitMode_Status.PBU_WalkSbyProcess.SendCodeTimeCnt_WalkSby = 0;
 					}
 					else
 					{
 							PBU_AssitMode_Status.PBU_AssistMode_Flag = PBU_AssistMode_Flag_Gear;
 						PBU_AssitMode_Status.PBU_WalkSbyProcess.DelayTimeCnt = SysTime_5ms;
 						PBU_AssitMode_Status.PBU_WalkSbyProcess.HMI_ACK_Flag = FALSE;
+						PBU_AssitMode_Status.PBU_WalkSbyProcess.SendCodeTimeCnt_WalkSby = 0;
 					}
 				}
 			}
@@ -451,6 +455,7 @@ void PBU_RunMode_Process(PBU_RunMode_t RunMode)
 					{
 						PBU_AssitMode_Status.PBU_AssistMode_Flag = PBU_AssistMode_Flag_Walk;
 						ControlCode.GearSt = 0x22;
+						PBU_AssitMode_Status.PBU_WalkSbyProcess.HMI_ACK_Flag = TRUE;
 					}
 					else
 					{
@@ -485,6 +490,8 @@ void PBU_RunMode_Process(PBU_RunMode_t RunMode)
 					  ControlCode.GearSt = PBU_AssitMode_Status.GearStBak_Walk;
 						PBU_AssitMode_Status.PBU_AssistMode_Flag = PBU_AssistMode_Flag_WalkSby;
 						PBU_AssitMode_Status.WalkDelayTimeCnt = SysTime_5ms;
+						PBU_AssitMode_Status.PBU_WalkSbyProcess.HMI_ACK_Flag = FALSE;
+						PBU_AssitMode_Status.PBU_WalkSbyProcess.SendCodeTimeCnt_WalkSby = 0;
 					}
 					break;
 				}
@@ -641,7 +648,7 @@ void PBU_RunMode_Process(PBU_RunMode_t RunMode)
 				do
 				{	
 					HAL_IWDG_Refresh(&hiwdg1);
-				}while(*(Key_On_Off.ADC_result)<4000);
+				}while(*(Key_On_Off.ADC_result)<3000);
 				__set_FAULTMASK(1);//关闭所有中断
 				HAL_NVIC_SystemReset();
 			}
@@ -656,7 +663,7 @@ void PBU_RunMode_Process(PBU_RunMode_t RunMode)
 				do
 				{	
 					HAL_IWDG_Refresh(&hiwdg1);
-				}while(*(Key_On_Off.ADC_result)<4000);
+				}while(*(Key_On_Off.ADC_result)<3000);
 				__set_FAULTMASK(1);//关闭所有中断
 				HAL_NVIC_SystemReset();
 			 }

+ 1 - 1
Src_app/var.c

@@ -78,7 +78,7 @@ void Var_Init(void)
 	
 	//PBU版本信息,Mode和SN从EEPROM读取
 	strcpy(PBU_VerInfo.HW_Version, (char*)"ZB002D_20190905.");//长度为16bytes
-	strcpy(PBU_VerInfo.FW_Version, (char*)"V2r0r3_20210414.");//长度为16bytes
+	strcpy(PBU_VerInfo.FW_Version, (char*)"V2r0r5_20210630.");//长度为16bytes
 
   //PBU校验信息,校验码从EEPROM读取
 	PBU_CheckInfo.MAC_ID[0] = *(__IO uint32_t*)(0x1FFFF7AC);