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 (espressif#1849)
1 parent 02ee799 commit a6a9a51

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

‎cores/esp32/esp32-hal-uart.c‎

Lines changed: 1 addition & 1 deletion
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)