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

修改uart接收长度判断

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

+ 2 - 2
Application/bsp/uart.c

@@ -97,7 +97,7 @@ static void shark_uart_rx(shark_uart_t *uart){
 				uart->escape = false;
 				break;
 			case CH_END:
-				if (uart->rx_length > 2 && uart->rx_length != 0xFF){
+				if (uart->rx_length > 2 && uart->rx_length != 0xFFFF){
 					uart->rx_length -= 2; //skip crc
 					shark_uart_on_rx_frame(uart);
 				}
@@ -131,7 +131,7 @@ static void shark_uart_rx(shark_uart_t *uart){
 					uart->rx_frame[uart->rx_length] = data;
 					uart->rx_length++;
 				} else {
-					uart->rx_length = 0xFF;
+					uart->rx_length = 0xFFFF;
 				}			
 		}
 	}

+ 2 - 1
Application/bsp/uart.h

@@ -23,6 +23,7 @@ typedef enum {
 	SHARK_UART_COUNT
 } uart_enum_t;
 
+#define RX_FRAME_MAX_LEN 260
 
 typedef struct {
 	byte_queue_t tx_queue;
@@ -32,7 +33,7 @@ typedef struct {
 	uint16_t tx_length;
 	uint16_t tx_crc16;
 	uint32_t uart_com;//uart device
-	uint8_t rx_frame[260];
+	uint8_t rx_frame[RX_FRAME_MAX_LEN];
 	uint16_t rx_length;
 	uint8_t rx_frame_old_prot[256];
 	uint16_t rx_length_old_prot;