Просмотр исходного кода

uart_no_data for each uart

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 5 лет назад
Родитель
Сommit
001e4c013e
2 измененных файлов с 6 добавлено и 5 удалено
  1. 5 5
      Application/bsp/uart.c
  2. 1 0
      Application/bsp/uart.h

+ 5 - 5
Application/bsp/uart.c

@@ -45,7 +45,7 @@ static u8 shark_uart_rx_cache[SHARK_UART_RX_MEM_SIZE];
 static shark_uart_t _shark_uart[2];
 static shark_task_t _uart_task;
 static u64 _rx_time;
-static bool uart_no_data = false;
+///static bool uart_no_data = false;
 #define update_dma_w_pos(uart) circle_update_write_position(&uart->rx_queue, SHARK_UART_RX_MEM_SIZE - DMA_CHCNT(uart->rx_dma_ch))
 extern void protocol_recv_frame(uart_enum_t uart_no, char *data, int len);
 extern void protocol_old_recv_frame(uart_enum_t uart_no, uint8_t *data, int len);
@@ -79,10 +79,10 @@ static void shark_uart_rx(shark_uart_t *uart){
 			}
 			
 			if (shark_get_mseconds() >= (UART_TIMEOUT + _rx_time)){
-				uart_no_data = true;
+				uart->uart_no_data = true;
 
 			}else {
-				uart_no_data = false;
+				uart->uart_no_data = false;
 			}
 			break;
 		}
@@ -339,7 +339,7 @@ void shark_uart_deinit(uart_enum_t uart_no){
 
 
 bool shark_uart_timeout(void){
-	return uart_no_data;
+	return (_shark_uart[0].uart_no_data && _shark_uart[1].uart_no_data)?TRUE:FALSE;
 }
 void shark_uart_init(uart_enum_t uart_no)
 {
@@ -371,7 +371,7 @@ void shark_uart_init(uart_enum_t uart_no)
 		UART1_IR_EN(1);
 	}
 	_rx_time = shark_get_mseconds();
-	uart_no_data = false;
+	uart->uart_no_data = false;
 }
 
 static void shark_uart_write_byte_esc(shark_uart_t *uart, u8 value)

+ 1 - 0
Application/bsp/uart.h

@@ -37,6 +37,7 @@ typedef struct {
 	uint8_t rx_frame_old_prot[256];
 	uint16_t rx_length_old_prot;
 	bool escape;
+	bool uart_no_data;
 }shark_uart_t;
 
 void shark_uart_init(uart_enum_t uart_no);