From bb40239f5d66fff2ef79464256d691feea6c1774 Mon Sep 17 00:00:00 2001 From: 3djc Date: Fri, 22 May 2020 19:41:37 +0200 Subject: [PATCH] Always empty aux ports buffers (#7617) * Always read serial aux ports * Cosmetics --- .../common/arm/stm32/aux_serial_driver.cpp | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) 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 53dcec950..8d24c00df 100644 --- a/radio/src/targets/common/arm/stm32/aux_serial_driver.cpp +++ b/radio/src/targets/common/arm/stm32/aux_serial_driver.cpp @@ -196,31 +196,18 @@ extern "C" void AUX_SERIAL_USART_IRQHandler(void) } } #endif + // Receive + uint32_t status = AUX_SERIAL_USART->SR; + while (status & (USART_FLAG_RXNE | USART_FLAG_ERRORS)) { + uint8_t data = AUX_SERIAL_USART->DR; + if (!(status & USART_FLAG_ERRORS)) { #if defined(LUA) & !defined(CLI) - if (luaRxFifo && auxSerialMode == UART_MODE_LUA) { - // Receive - uint32_t status = AUX_SERIAL_USART->SR; - while (status & (USART_FLAG_RXNE | USART_FLAG_ERRORS)) { - uint8_t data = AUX_SERIAL_USART->DR; - if (!(status & USART_FLAG_ERRORS)) { + if (luaRxFifo && auxSerialMode == UART_MODE_LUA) luaRxFifo->push(data); - } - status = AUX_SERIAL_USART->SR; - } - } -#if defined(AUX2_SERIAL) - if (luaRxFifo && aux2SerialMode == UART_MODE_LUA) { - // Receive - uint32_t status = AUX2_SERIAL_USART->SR; - while (status & (USART_FLAG_RXNE | USART_FLAG_ERRORS)) { - uint8_t data = AUX2_SERIAL_USART->DR; - if (!(status & USART_FLAG_ERRORS)) { - luaRxFifo->push(data); - } - status = AUX2_SERIAL_USART->SR; - } - } #endif + } + status = AUX_SERIAL_USART->SR; + } #endif } #endif @@ -401,8 +388,21 @@ extern "C" void AUX2_SERIAL_USART_IRQHandler(void) } } #endif +#if defined(AUX2_SERIAL) + // Receive + uint32_t status = AUX2_SERIAL_USART->SR; + while (status & (USART_FLAG_RXNE | USART_FLAG_ERRORS)) { + uint8_t data = AUX2_SERIAL_USART->DR; + if (!(status & USART_FLAG_ERRORS)) { +#if defined(LUA) + if (luaRxFifo && aux2SerialMode == UART_MODE_LUA) + luaRxFifo->push(data); +#endif + } + status = AUX2_SERIAL_USART->SR; + } } #endif #endif -#endif // AUX_SERIAL +#endif // AUX_SERIAL \ No newline at end of file