summaryrefslogtreecommitdiffstatshomepage
path: root/esp8266
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-01-03 07:33:42 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-03-05 22:13:26 +0200
commitd9d4a72679eec681e213d4a81017abc0000e6220 (patch)
tree232228bdb44c71006109a2f27f4bcb4b1c1db35c /esp8266
parentd3a4d39687f941d12d727b80c79dd98ebae03674 (diff)
downloadmicropython-d9d4a72679eec681e213d4a81017abc0000e6220.tar.gz
micropython-d9d4a72679eec681e213d4a81017abc0000e6220.zip
esp8266/uart: Add uart_flush() function.
Diffstat (limited to 'esp8266')
-rw-r--r--esp8266/uart.c9
-rw-r--r--esp8266/uart.h1
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_