From b8e0d22d01ac4829d86a0e3d41143b8701486df1 Mon Sep 17 00:00:00 2001 From: jflyper Date: Tue, 8 May 2018 13:05:53 +0900 Subject: [PATCH] Treat uarts without a pin as non-existent --- src/main/io/serial.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/io/serial.c b/src/main/io/serial.c index c7e6b61cc3..253ff82cf1 100644 --- a/src/main/io/serial.c +++ b/src/main/io/serial.c @@ -459,7 +459,17 @@ void serialInit(bool softserialEnabled, serialPortIdentifier_e serialPortToDisab } } - if ((serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL1 +#ifndef SITL + else if (serialPortUsageList[index].identifier <= SERIAL_PORT_USART8) { + int resourceIndex = SERIAL_PORT_IDENTIFIER_TO_INDEX(serialPortUsageList[index].identifier); + if (!(serialPinConfig()->ioTagTx[resourceIndex] || serialPinConfig()->ioTagRx[resourceIndex])) { + serialPortUsageList[index].identifier = SERIAL_PORT_NONE; + serialPortCount--; + } + } +#endif + + else if ((serialPortUsageList[index].identifier == SERIAL_PORT_SOFTSERIAL1 #ifdef USE_SOFTSERIAL1 && !(softserialEnabled && (serialPinConfig()->ioTagTx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1] || serialPinConfig()->ioTagRx[RESOURCE_SOFT_OFFSET + SOFTSERIAL1]))