소스 검색

UART读取调试完成

CHENJIE-PC\QiXiang_CHENJIE 3 년 전
부모
커밋
4ce544547b
3개의 변경된 파일15개의 추가작업 그리고 8개의 파일을 삭제
  1. 1 1
      inc/AppSignal.h
  2. 1 1
      src/AppSignal.c
  3. 13 6
      src/AppTaskUart.c

+ 1 - 1
inc/AppSignal.h

@@ -67,7 +67,7 @@ extern UINT32	battWarningState;
 extern UINT32	nbSwVersion ;
 extern UINT32	battBalanceoInfo;
 extern UINT32   Battdesigncap;
-extern UINT32  TimeCounter;
+extern volatile UINT32  TimeCounter;
 
 
 //declear other vars

+ 1 - 1
src/AppSignal.c

@@ -64,7 +64,7 @@ UINT32	battWarningState = 0xFFFFFFFF;  //电池告警状态
 UINT32	nbSwVersion = 0xFFFFFFFF;       // 数据模块软件状态
 UINT32	battBalanceoInfo = 0xFFFFFFFF;  //电池均衡状态
 UINT32  Battdesigncap =0xFFFFFFFF;      //battery design cap 电池包设计容量
-UINT32  TimeCounter = 0x00;             //主任务定时器计数
+volatile UINT32  TimeCounter = 0x00;             //主任务定时器计数
 
 
 /**declear the Handle vars**/

+ 13 - 6
src/AppTaskUart.c

@@ -49,7 +49,6 @@ static void UartTask(void* arg)
     PROC_UART_STATE_SWITCH(PROCESS_UART_STATE_ENCRYPT);
     while (1)
     {
-		osDelay(100);
         switch (gProcess_Uart_Task)
         {
             case PROCESS_UART_STATE_ENCRYPT:
@@ -66,7 +65,7 @@ static void UartTask(void* arg)
             }
             case PROCESS_UART_STATE_IDLE:
             {
-                osDelay(50);
+                osDelay(100);
                 if(TimeCounter%10==0 && gProcess_app==WORK)
                 {
                     if(osMessageQueueGet(UartWriteCmdHandle,&UartWriteData,0,0)==osOK)
@@ -122,6 +121,9 @@ static void UartTask(void* arg)
 				Uart_Read_Msg.CRC_L = CRC_chk_buffer;
 				Uart_Read_Msg.CRC_H = CRC_chk_buffer>>8;
 				Uart_Recv_LEN = Uart_DataRecv_func(Uart_Read_Msg,(UINT8*)(UartAnswerData.Header));
+                #ifdef USING_PRINTF
+					printf("[%d]Uart_Recv_buffer-%d: ",__LINE__,Uart_Recv_LEN);
+                #endif
                 if(Uart_Recv_LEN>0)
                 {
                     UartRecvFlag = 1;
@@ -135,7 +137,7 @@ static void UartTask(void* arg)
 
                 PROC_UART_STATE_SWITCH(PROCESS_UART_STATE_IDLE);
                 #ifdef USING_PRINTF
-					printf("\nUart_Recv_buffer:  ");
+					printf("[%d]Uart_Recv_buffer-%d: ",__LINE__,Uart_Recv_LEN);
 					for(int i=0;i<Uart_Recv_LEN;i++)
 					{
 						printf("%x ",*((UINT8 *)&UartAnswerData.Header+i));
@@ -166,8 +168,14 @@ static void UartTask(void* arg)
                 {
                     osDelay(1000);
                 }
-                PROC_UART_STATE_SWITCH(PROCESS_UART_STATE_IDLE);
+                PROC_UART_STATE_SWITCH(PROCESS_UART_STATE_ENCRYPT);
+                USARTdrv->Initialize(USART_callback);
                 USARTdrv->PowerControl(ARM_POWER_FULL);
+                USARTdrv->Control(ARM_USART_MODE_ASYNCHRONOUS |
+                                ARM_USART_DATA_BITS_8 |
+                                ARM_USART_PARITY_NONE |
+                                ARM_USART_STOP_BITS_1 |
+                                ARM_USART_FLOW_CONTROL_NONE, 9600);
                 break;
             }
             default:
@@ -175,7 +183,6 @@ static void UartTask(void* arg)
                 PROC_UART_STATE_SWITCH(PROCESS_UART_STATE_IDLE);
                 break;
             }
-
         }
     }
 }
@@ -284,7 +291,7 @@ UINT8 Uart_Encrypt_Send()
 		}
 	}
 	#ifdef USING_PRINTF
-		printf("Uart_Rece_buffer: ");
+		printf("[%d]Uart_Encrypt_Recv: ",__LINE__);
 		for(int i=0;i<5;i++)
 		{
 		printf("%x ",UartDecryptBuffer[i]);