diff --git a/radio/src/gui/colorlcd/radio_hardware.cpp b/radio/src/gui/colorlcd/radio_hardware.cpp index 4c1a4a765..141c20136 100644 --- a/radio/src/gui/colorlcd/radio_hardware.cpp +++ b/radio/src/gui/colorlcd/radio_hardware.cpp @@ -243,8 +243,8 @@ class SerialConfigWindow : public FormGroup new CheckBox( this, grid.getFieldSlot(1, 0), [=] { return serialGetPower(port_nr); }, - [=](int32_t newValue) { - serialSetPower(port_nr, newValue); + [=](int8_t newValue) { + serialSetPower(port_nr, (bool)newValue); SET_DIRTY(); } ); diff --git a/radio/src/serial.cpp b/radio/src/serial.cpp index 0a6c10bfb..0d4448796 100644 --- a/radio/src/serial.cpp +++ b/radio/src/serial.cpp @@ -321,7 +321,13 @@ void serialInit(uint8_t port_nr, int mode) }; serialSetupPort(mode, params); - + +#if defined(SWSERIALPOWER) + // Set power on/off + if (port_nr < SP_VCP) + serialSetPowerState(port_nr); +#endif + if (params.baudrate != 0) { state->mode = mode; state->port = port; @@ -329,12 +335,6 @@ void serialInit(uint8_t port_nr, int mode) if (port) { if (port->uart && port->uart->init) state->usart_ctx = port->uart->init(¶ms); - -#if defined(SWSERIALPOWER) - // Set power on/off - if (port_nr < SP_VCP) - serialSetPowerState(port_nr); -#endif } // Update callbacks once the port is setup