File tree Expand file tree Collapse file tree 1 file changed +13
-5
lines changed Expand file tree Collapse file tree 1 file changed +13
-5
lines changed Original file line number Diff line number Diff line change @@ -85,7 +85,7 @@ static void IRAM_ATTR _uart_isr(void *arg)
8585 uart -> dev -> int_clr .rxfifo_tout = 1 ;
8686 while (uart -> dev -> status .rxfifo_cnt || (uart -> dev -> mem_rx_status .wr_addr != uart -> dev -> mem_rx_status .rd_addr )) {
8787 c = uart -> dev -> fifo .rw_byte ;
88- if (uart -> queue != NULL && ! xQueueIsQueueFullFromISR ( uart -> queue )) {
88+ if (uart -> queue != NULL ) {
8989 xQueueSendFromISR (uart -> queue , & c , & xHigherPriorityTaskWoken );
9090 }
9191 }
@@ -285,10 +285,18 @@ void uartRxFifoToQueue(uart_t* uart)
285285{
286286 uint8_t c ;
287287 UART_MUTEX_LOCK ();
288- while (uart -> dev -> status .rxfifo_cnt || (uart -> dev -> mem_rx_status .wr_addr != uart -> dev -> mem_rx_status .rd_addr )) {
289- c = uart -> dev -> fifo .rw_byte ;
290- xQueueSend (uart -> queue , & c , 0 );
291- }
288+ //disable interrupts
289+ uart -> dev -> int_ena .val = 0 ;
290+ uart -> dev -> int_clr .val = 0xffffffff ;
291+ while (uart -> dev -> status .rxfifo_cnt || (uart -> dev -> mem_rx_status .wr_addr != uart -> dev -> mem_rx_status .rd_addr )) {
292+ c = uart -> dev -> fifo .rw_byte ;
293+ xQueueSend (uart -> queue , & c , 0 );
294+ }
295+ //enable interrupts
296+ uart -> dev -> int_ena .rxfifo_full = 1 ;
297+ uart -> dev -> int_ena .frm_err = 1 ;
298+ uart -> dev -> int_ena .rxfifo_tout = 1 ;
299+ uart -> dev -> int_clr .val = 0xffffffff ;
292300 UART_MUTEX_UNLOCK ();
293301}
294302
You can’t perform that action at this time.
0 commit comments