From 7b291d87a9ce24833f26ad6192eea6dc4b6251f7 Mon Sep 17 00:00:00 2001 From: 19y Date: Mon, 29 Sep 2025 20:34:21 +0800 Subject: [PATCH] Fix: Fixed a reading bug in MODBUS-RTU when using DMA --- examples/stm32/nmbs/port.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/examples/stm32/nmbs/port.c b/examples/stm32/nmbs/port.c index f7cf225..8271f57 100644 --- a/examples/stm32/nmbs/port.c +++ b/examples/stm32/nmbs/port.c @@ -195,6 +195,11 @@ int32_t write_socket(const uint8_t* buf, uint16_t count, int32_t byte_timeout_ms #ifdef NMBS_RTU static int32_t read_serial(uint8_t* buf, uint16_t count, int32_t byte_timeout_ms, void* arg) { #if MB_UART_DMA + if(byte_timeout_ms==0) + { + xQueueReset(rtu_rx_q); + return 0; + } uint32_t tick_start = HAL_GetTick(); while (uxQueueMessagesWaiting(rtu_rx_q) < count) { if (HAL_GetTick() - tick_start >= (uint32_t) byte_timeout_ms) {