Explorar el Código

MGMLX:2.3.0.10,修改了存在CAN消息仍然联网失败重启的bug

CHENJIE-PC\QiXiang_CHENJIE hace 3 años
padre
commit
529998c9fb
Se han modificado 6 ficheros con 7 adiciones y 11 borrados
  1. 1 1
      inc/Signal.h
  2. 1 1
      inc/app.h
  3. 2 0
      src/CANTask.c
  4. 2 4
      src/MainTask.c
  5. 1 0
      src/Signal.c
  6. 0 5
      src/bsp_custom.c

+ 1 - 1
inc/Signal.h

@@ -30,7 +30,7 @@ extern	UINT8	reservedSignal7;
 extern	UINT8	reservedSignal8;
 extern  UINT8   RelayControlState;
 extern  UINT8	BuzzerControl;
-
+extern  UINT8   CanMsgFlag;
 
 //declear the UINT16 vars
 extern	UINT16	battCellU[28];

+ 1 - 1
inc/app.h

@@ -51,7 +51,7 @@ extern "C" {
 #define	BLSWVERSION		0x01020000    //BootLoader版本号V1.2.0.0
 #define	DRVSWVERSION		0x01050000     //驱动层版本号V1.4.0.0  驱动层1.5.0.0,增加了三轴
 //#define	APPSWVERSION		0x01020209     
-#define	APPSWVERSION		0x02030009
+#define	APPSWVERSION		0x0203000A
 //#define	APPSWVERSION		0x0201000E
 //--------------------------------------------------------------------------------
 

+ 2 - 0
src/CANTask.c

@@ -90,6 +90,7 @@ static void Can_Receive()
 				}
 				if(HAL_Can_Receive(CanRxMsg)>0)					
 				{
+					CanMsgFlag = 0x01;
 					delayconuter=0;						
 					for(i=0; i<2; i++)
 					{								
@@ -145,6 +146,7 @@ static void Can_Receive()
 				{
 					relayControl(FALSE);
 					delayconuter=0;
+					CanMsgFlag = 0x00;
 					PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_IDLE);
 				}
 				break;

+ 2 - 4
src/MainTask.c

@@ -47,7 +47,6 @@ AppNVMDataType AppNVMData;
 AppDataHeader AppDataHr;
 AppDataBody AppDataInfo;
 
-BOOL Can_Msg_Enble = false;
 
 //主线程堆栈声明区
 static StaticTask_t           gProcess_Main_Task_t;
@@ -185,7 +184,7 @@ static void MainTask(void* arg)
             case PROCESS_STATE_WORK:
             {
 
-                if(Error_count>=5)
+                if(Error_count>=5 && CanMsgFlag==0x00)
                 {
                     AppDataInfo.appDataModify = true;
                     AppDataInfo.SysReStart = AppDataInfo.SysReStart +1;
@@ -245,10 +244,9 @@ static void MainTask(void* arg)
                 #ifdef USING_PRINTF1
                     printf("TcpService:%d,UDSSwitch:%d,BMS_Fota_update_flag:%d,battWorkState:%d,Can_Msg_Enble:%d\r\n",TcpService,UDSSwitch,BMS_Fota_update_flag,battWorkState,Can_Msg_Enble);
                 #endif	
-                if(TcpService!=0x00||UDSSwitch==1||BMS_Fota_update_flag||battWorkState!=0||Can_Msg_Enble==true)
+                if(TcpService!=0x00||UDSSwitch==1||BMS_Fota_update_flag||battWorkState!=0||CanMsgFlag==0x01)
                 {
                     xTimerReset(work_timer,0);
-                    Can_Msg_Enble = false;
                 }
                 if(BattChrgEndFlag)
                 {

+ 1 - 0
src/Signal.c

@@ -62,6 +62,7 @@ UINT8	reservedSignal7 = 0xFF;
 UINT8	reservedSignal8 = 0xFF;
 UINT8   RelayControlState = 0x00;
 UINT8	BuzzerControl = 0x00;
+UINT8   CanMsgFlag = 0x00;
 //declear the UINT16 vars
 UINT16	battCellU[28] = {0xFFFF};
 UINT16	minCellVol = 0xFFFF;

+ 0 - 5
src/bsp_custom.c

@@ -18,7 +18,6 @@
 extern uint8_t lockoutState;
 #endif
 extern UINT8 Lockstatus;
-extern BOOL Can_Msg_Enble;
 void GPR_SetUartClk(void)
 {
     GPR_ClockDisable(GPR_UART0FuncClk);
@@ -206,10 +205,6 @@ void Pad0_WakeupIntHandler(void)
     {
         return;
     }
-    else
-    {
-        Can_Msg_Enble = true;
-    }
 #ifdef USING_PRINTF1
 	printf("[%d]PadWakeup0_IRQn\r\n",__LINE__);
 // #else