Skip to content

Commit a6a9a51

Browse files
qt1me-no-dev
authored andcommitted
_uart_isr use wr_addr != rd_addr as test for internal queue not empty (#1849)
1 parent 02ee799 commit a6a9a51

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

Diff for: cores/esp32/esp32-hal-uart.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ static void IRAM_ATTR _uart_isr(void *arg)
8080
uart->dev->int_clr.rxfifo_full = 1;
8181
uart->dev->int_clr.frm_err = 1;
8282
uart->dev->int_clr.rxfifo_tout = 1;
83-
while(uart->dev->status.rxfifo_cnt) {
83+
while(uart->dev->status.rxfifo_cnt || (uart->dev->mem_rx_status.wr_addr != uart->dev->mem_rx_status.rd_addr)) {
8484
c = uart->dev->fifo.rw_byte;
8585
if(uart->queue != NULL && !xQueueIsQueueFullFromISR(uart->queue)) {
8686
xQueueSendFromISR(uart->queue, &c, &xHigherPriorityTaskWoken);

0 commit comments

Comments
 (0)