From aaee69ecfb5c48df620a510bd979a97d7799463c Mon Sep 17 00:00:00 2001 From: Florian Kogler Date: Tue, 15 Oct 2024 07:36:25 +0200 Subject: [PATCH] fix: flush uart queue on parity and frame error Signed-off-by: aleks Merges https://github.com/espressif/esp-modbus/pull/78 --- freemodbus/port/portserial.c | 4 ++++ 1 file changed, 4 insertions(+) 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);