CHENJIE-PC\QiXiang_CHENJIE há 3 anos atrás
pai
commit
865f83cb1a
6 ficheiros alterados com 26 adições e 31 exclusões
  1. 2 2
      inc/app.h
  2. 0 1
      src/CANTask.c
  3. 5 4
      src/MainTask.c
  4. 0 4
      src/TcpTask.c
  5. 1 1
      src/UartTask.c
  6. 18 19
      src/hal_module_adapter.c

+ 2 - 2
inc/app.h

@@ -15,7 +15,7 @@ extern "C" {
 //全局定义声明区
 #define BMS_MANUFACTURE (2) //BMS制造商表示1-超力源,2-美顺
 #define DATA_MODULE_TYPE (1) //1表示NB模块,2表示4G cat1
-#define BMS_INFO  (3)       //1-1表示超力源4830,1-2表示超力源6060,2-1表示美顺MLS,2-2表示美顺MWL,2-3表示美顺MGM
+#define BMS_INFO  (2)       //1-1表示超力源4830,1-2表示超力源6060,2-1表示美顺MLS,2-2表示美顺MWL,2-3表示美顺MGM
 #define EOLSTATE (0) //1标识下线检测跳过,使用默认值
 
 #if  BMS_MANUFACTURE==1
@@ -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		0x0203000B
+#define	APPSWVERSION		0x0203000C
 //#define	APPSWVERSION		0x0201000E
 //--------------------------------------------------------------------------------
 

+ 0 - 1
src/CANTask.c

@@ -142,7 +142,6 @@ static void Can_Receive()
 				}
 				if(delayconuter>100 && msgFlag ==0)
 				{
-					relayControl(FALSE);
 					delayconuter=0;
 					CanMsgFlag = 0x00;
 					PROC_CAN_STATE_SWITCH(PROCESS_CAN_STATE_IDLE);

+ 5 - 4
src/MainTask.c

@@ -82,12 +82,13 @@ static void appSaveDataInfo(void);
 //主线程任务区
 static void MainTask(void* arg)
 {
-
+    if(Error_Mutex == NULL)
+    {
+        Error_Mutex = osMutexNew(NULL);
+    }
     GsensorI2CHandler(GsensorI2CCallback);
     GsensorInit();
 
-
-
     int32_t inParam = 0xAABBCCDD;
     UINT32  param;
     UINT32 adcValue;
@@ -184,7 +185,7 @@ static void MainTask(void* arg)
             case PROCESS_STATE_WORK:
             {
 
-                if(Error_count>=5 && CanMsgFlag==0x00)
+                if(Error_count>=5 && CanMsgFlag==0x00 && UDSSwitch==0 &&BMS_Fota_update_flag==FALSE && battWorkState==0)
                 {
                     AppDataInfo.appDataModify = true;
                     AppDataInfo.SysReStart = AppDataInfo.SysReStart +1;

+ 0 - 4
src/TcpTask.c

@@ -83,10 +83,6 @@ static void TcpTask(void* arg)
 	{
 		TcpRecvHandle = osMessageQueueNew(2,sizeof(TcpipConnectionRecvDataInd*), NULL);
 	}
-    if(Error_Mutex == NULL)
-    {
-        Error_Mutex = osMutexNew(NULL);
-    }
     osDelay(5000);//等待驻网延时5s
     while (true)
     {

+ 1 - 1
src/UartTask.c

@@ -146,7 +146,7 @@ static void UartTask(void* arg)
                     #ifdef USING_PRINTF1
                         printf("[%d]Uart Timer 1s:%d,uartReadSuccessFlag:%d\n",__LINE__,Timer_count,uartReadSuccessFlag);
                     #endif
-                    if(osMessageQueueGet(UartWriteCmdHandle,&UartWriteData,0,0)==osOK)
+                    if(osMessageQueueGet(UartWriteCmdHandle,&UartWriteData,0,0)==osOK && uartReadSuccessFlag==TRUE)
                     {
                         #ifdef USING_PRINTF
                             printf("[%d]UartWriteCmdHandle :%x-%X%X\n",__LINE__,UartWriteData.WriteCmd,UartWriteData.Data[0],UartWriteData.Data[1]);

+ 18 - 19
src/hal_module_adapter.c

@@ -1477,18 +1477,17 @@ void GsensorTriggerEvent(UINT32 event ,UINT32 data)
 static INT32 	I2CEvtProcess(uint32_t evt)
 {
     INT32 ret;
-#if SL_SC7A20_16BIT_8BIT
-    INT16 xyzData[7];
-#else
-    INT8 xyzData[7];
-#endif
+	#if SL_SC7A20_16BIT_8BIT
+		INT16 xyzData[7];
+	#else
+		INT8 xyzData[7];
+	#endif
     HAL_I2C_RecvControl(true);
 
     if(evt & I2C_INT1_REQ_BITMAP)
     {
 
     }
-
     if(evt & I2C_INT2_REQ_BITMAP)
     {
 	SL_SC7A20_Read_XYZ_Data(xyzData);
@@ -1509,18 +1508,18 @@ static void HAL_I2C_RecvTaskEntry(void)
 
  		EC_ASSERT(flag == I2C_RECV_CONTROL_FLAG, flag, 0, 0);
 
-		status = osMessageQueueGet(i2c_recv_msgqueue, &msg, 0 , osWaitForever);
+		status = osMessageQueueGet(i2c_recv_msgqueue, &msg, 0 , 1000);
 		if(status == osOK)
 		{
 
-		      mask = SaveAndSetIRQMask();
+		    mask = SaveAndSetIRQMask();
 			//handle data
-			//I2CEvtProcess(msg.event);
-#ifdef USING_PRINTF
-			//printf("[%d]i2c recv event\r\n",__LINE__);
-#else				
-    			ECOMM_TRACE(UNILOG_PLA_DRIVER, I2C_GSENSOR_D, P_INFO, 0, "i2c recv event");
-#endif
+			I2CEvtProcess(msg.event);
+			#ifdef USING_PRINTF
+				printf("[%d]i2c recv event\r\n",__LINE__);
+			#else				
+				ECOMM_TRACE(UNILOG_PLA_DRIVER, I2C_GSENSOR_D, P_INFO, 0, "i2c recv event");
+			#endif
 			RestoreIRQMask(mask);  
 		}
 	}
@@ -1658,11 +1657,11 @@ void GsensorI2CHandler(ARM_I2C_SignalEvent_t cb_event)
      i2cDrvInstance->Control(ARM_I2C_BUS_SPEED, ARM_I2C_BUS_SPEED_STANDARD);
      i2cDrvInstance->Control(ARM_I2C_BUS_CLEAR, 0);
      HAL_I2C_CreateRecvTaskAndQueue();	 
-#ifdef USING_PRINTF
-   //printf("[%d] i2c config ok\r\n",__LINE__);
-#else	 
-     ECOMM_TRACE(UNILOG_PLA_DRIVER, I2C_GSENSOR_I, P_INFO, 0, "i2c config ok");
-#endif
+	#ifdef USING_PRINTF
+		printf("[%d] i2c config ok\r\n",__LINE__);
+	#else	 
+		ECOMM_TRACE(UNILOG_PLA_DRIVER, I2C_GSENSOR_I, P_INFO, 0, "i2c config ok");
+	#endif
 }
 
 /**