diff --git a/radio/src/targets/common/arm/stm32/aux_serial_driver.cpp b/radio/src/targets/common/arm/stm32/aux_serial_driver.cpp index 5c8f1e97f..b2c528dc0 100644 --- a/radio/src/targets/common/arm/stm32/aux_serial_driver.cpp +++ b/radio/src/targets/common/arm/stm32/aux_serial_driver.cpp @@ -213,10 +213,6 @@ extern "C" void AUX_SERIAL_USART_IRQHandler(void) #if defined(LUA) & !defined(CLI) if (luaRxFifo && auxSerialMode == UART_MODE_LUA) luaRxFifo->push(data); -#endif -#if !defined(BOOT) - if (auxSerialMode == UART_MODE_SBUS_TRAINER) - trainerSbusFifo.push(data); #endif } status = AUX_SERIAL_USART->SR; @@ -328,7 +324,7 @@ void aux2SerialInit(unsigned int mode, unsigned int protocol) break; case UART_MODE_SBUS_TRAINER: - aux2SerialSetup(SBUS_BAUDRATE, false, USART_WordLength_9b, USART_Parity_Even, USART_StopBits_2); // 2 stop bits requires USART_WordLength_9b + aux2SerialSetup(SBUS_BAUDRATE, true, USART_WordLength_9b, USART_Parity_Even, USART_StopBits_2); // 2 stop bits requires USART_WordLength_9b AUX2_SERIAL_POWER_ON(); break; @@ -415,11 +411,6 @@ extern "C" void AUX2_SERIAL_USART_IRQHandler(void) if (luaRxFifo && aux2SerialMode == UART_MODE_LUA) { luaRxFifo->push(data); } -#endif -#if !defined(BOOT) - if (aux2SerialMode == UART_MODE_SBUS_TRAINER) { - trainerSbusFifo.push(data); - } #endif } status = AUX2_SERIAL_USART->SR; diff --git a/radio/src/targets/horus/board.h b/radio/src/targets/horus/board.h index 38daec33c..cffc553dc 100644 --- a/radio/src/targets/horus/board.h +++ b/radio/src/targets/horus/board.h @@ -713,6 +713,7 @@ void bluetoothDisable(); extern DMAFifo<512> telemetryFifo; typedef DMAFifo<32> AuxSerialRxFifo; extern AuxSerialRxFifo auxSerialRxFifo; +extern AuxSerialRxFifo aux2SerialRxFifo; extern volatile uint32_t externalModulePort; #endif diff --git a/radio/src/targets/horus/trainer_driver.cpp b/radio/src/targets/horus/trainer_driver.cpp index a4f0c7b6b..ce649c688 100644 --- a/radio/src/targets/horus/trainer_driver.cpp +++ b/radio/src/targets/horus/trainer_driver.cpp @@ -160,9 +160,16 @@ extern "C" void TRAINER_TIMER_IRQHandler() int sbusGetByte(uint8_t * byte) { switch (currentTrainerMode) { -#if defined(AUX_SERIAL) +#if defined(AUX_SERIAL) || defined(AUX2_SERIAL) case TRAINER_MODE_MASTER_BATTERY_COMPARTMENT: - return trainerSbusFifo.pop(*byte); +#if defined(AUX_SERIAL) + if (auxSerialMode == UART_MODE_SBUS_TRAINER) + return auxSerialRxFifo.pop(*byte); +#endif +#if defined(AUX2_SERIAL) + if (aux2SerialMode == UART_MODE_SBUS_TRAINER) + return aux2SerialRxFifo.pop(*byte); +#endif #endif default: return false;