diff --git a/freemodbus/port/portserial.c b/freemodbus/port/portserial.c index 84cf3a1..bdab001 100644 --- a/freemodbus/port/portserial.c +++ b/freemodbus/port/portserial.c @@ -161,10 +161,14 @@ static void vUartTask(void *pvParameters) //Event of UART parity check error case UART_PARITY_ERR: ESP_LOGD(TAG, "uart parity error"); + xQueueReset(xMbUartQueue); + uart_flush_input(ucUartNumber); break; //Event of UART frame error case UART_FRAME_ERR: ESP_LOGD(TAG, "uart frame error"); + xQueueReset(xMbUartQueue); + uart_flush_input(ucUartNumber); break; default: ESP_LOGD(TAG, "uart event type: %u", (unsigned)xEvent.type);