diff --git a/radio/src/targets/common/arm/stm32/stm32_usart_driver.cpp b/radio/src/targets/common/arm/stm32/stm32_usart_driver.cpp index 6cb60fe2e..9c32e5405 100644 --- a/radio/src/targets/common/arm/stm32/stm32_usart_driver.cpp +++ b/radio/src/targets/common/arm/stm32/stm32_usart_driver.cpp @@ -560,6 +560,12 @@ void stm32_usart_send_byte(const stm32_usart_t* usart, uint8_t byte) void stm32_usart_send_buffer(const stm32_usart_t* usart, const uint8_t * data, uint32_t size) { + + if (!stm32_usart_tx_completed(usart)) { + // Transmission is already in progress, abort + return; + } + _half_duplex_output(usart); if (usart->txDMA) {