diff options
-rw-r--r-- | esp8266/uart.c | 9 | ||||
-rw-r--r-- | esp8266/uart.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/esp8266/uart.c b/esp8266/uart.c index aa3d368b7c..942c397e90 100644 --- a/esp8266/uart.c +++ b/esp8266/uart.c @@ -105,6 +105,15 @@ void uart_tx_one_char(uint8 uart, uint8 TxChar) { WRITE_PERI_REG(UART_FIFO(uart), TxChar); } +void uart_flush(uint8 uart) { + while (true) { + uint32 fifo_cnt = READ_PERI_REG(UART_STATUS(uart)) & (UART_TXFIFO_CNT<<UART_TXFIFO_CNT_S); + if ((fifo_cnt >> UART_TXFIFO_CNT_S & UART_TXFIFO_CNT) == 0) { + break; + } + } +} + /****************************************************************************** * FunctionName : uart1_write_char * Description : Internal used function diff --git a/esp8266/uart.h b/esp8266/uart.h index ce1438baf3..ed0dcfb445 100644 --- a/esp8266/uart.h +++ b/esp8266/uart.h @@ -92,5 +92,6 @@ typedef struct { void uart_init(UartBautRate uart0_br, UartBautRate uart1_br); int uart0_rx(void); void uart_tx_one_char(uint8 uart, uint8 TxChar); +void uart_flush(uint8 uart); #endif // _INCLUDED_UART_H_ |