From 5ed4970d62ced75a5c13c3345dc656173db2dbb7 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Fri, 28 Nov 2025 09:08:53 +0100 Subject: [PATCH] change uart pins without restart --- src/uart/emsuart_esp32.cpp | 1 + src/web/WebSettingsService.cpp | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/uart/emsuart_esp32.cpp b/src/uart/emsuart_esp32.cpp index 66bdbdbdc..f4f0e0d17 100644 --- a/src/uart/emsuart_esp32.cpp +++ b/src/uart/emsuart_esp32.cpp @@ -106,6 +106,7 @@ void EMSuart::start(const uint8_t tx_mode, const uint8_t rx_gpio, const uint8_t xTaskCreatePinnedToCore(uart_event_task, "uart_event_task", EMSESP_UART_STACKSIZE, NULL, EMSESP_UART_PRIORITY, &xHandle, EMSESP_UART_RUNNING_CORE); #endif } else { + uart_set_pin(EMSUART_NUM, tx_gpio, rx_gpio, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE); vTaskResume(xHandle); } tx_mode_ = tx_mode; diff --git a/src/web/WebSettingsService.cpp b/src/web/WebSettingsService.cpp index dd4addfba..279d7b480 100644 --- a/src/web/WebSettingsService.cpp +++ b/src/web/WebSettingsService.cpp @@ -134,10 +134,10 @@ StateUpdateResult WebSettings::update(JsonObject root, WebSettings & settings) { EMSESP::system_.remove_gpio(original_settings.tx_gpio); // now add new gpio assignment, start with rx/tx - check_flag(original_settings.rx_gpio, settings.rx_gpio, ChangeFlags::RESTART); + check_flag(original_settings.rx_gpio, settings.rx_gpio, ChangeFlags::UART); have_valid_gpios = have_valid_gpios && EMSESP::system_.add_gpio(settings.rx_gpio, "UART Rx"); - check_flag(original_settings.tx_gpio, settings.tx_gpio, ChangeFlags::RESTART); + check_flag(original_settings.tx_gpio, settings.tx_gpio, ChangeFlags::UART); have_valid_gpios = have_valid_gpios && EMSESP::system_.add_gpio(settings.tx_gpio, "UART Tx"); check_flag(original_settings.led_gpio, settings.led_gpio, ChangeFlags::LED);