diff --git a/src/main/io/serial.c b/src/main/io/serial.c index e6e72db47b..4dea6c63a7 100644 --- a/src/main/io/serial.c +++ b/src/main/io/serial.c @@ -28,6 +28,8 @@ #include "config/parameter_group.h" #include "config/parameter_group_ids.h" +#include "fc/config.h" + #include "drivers/system.h" #include "drivers/serial.h" #if defined(USE_SOFTSERIAL1) || defined(USE_SOFTSERIAL2) @@ -436,18 +438,18 @@ void serialInit(bool softserialEnabled, serialPortIdentifier_e serialPortToDisab serialPortCount--; } } - if (!softserialEnabled) { - if (0 + + if ((serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL1 #ifdef USE_SOFTSERIAL1 - || serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL1 + && !(softserialEnabled && serialPinConfig()->ioTagTx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1]) #endif + ) || (serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL2 #ifdef USE_SOFTSERIAL2 - || serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL2 + && !(softserialEnabled && serialPinConfig()->ioTagTx[RESOURCE_SOFT_OFFSET + SOFTSERIAL2]) #endif - ) { - serialPortUsageList[index].identifier = SERIAL_PORT_NONE; - serialPortCount--; - } + )) { + serialPortUsageList[index].identifier = SERIAL_PORT_NONE; + serialPortCount--; } } }