From 0e3d2806559171bf856402b123f35481e9ce5f88 Mon Sep 17 00:00:00 2001 From: "Sascha Schade (strongly-typed)" Date: Sun, 1 May 2022 14:17:02 +0200 Subject: [PATCH] [stm32] Uart: Add transmission complete flag --- src/modm/platform/uart/stm32/uart_hal.hpp.in | 4 ++++ src/modm/platform/uart/stm32/uart_hal_impl.hpp.in | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/modm/platform/uart/stm32/uart_hal.hpp.in b/src/modm/platform/uart/stm32/uart_hal.hpp.in index 5d6e4ba162..32a5f57c36 100644 --- a/src/modm/platform/uart/stm32/uart_hal.hpp.in +++ b/src/modm/platform/uart/stm32/uart_hal.hpp.in @@ -118,6 +118,10 @@ public: static inline bool isTransmitRegisterEmpty(); + /// Returns true if the transmission of a frame containing data is complete + static inline bool + isTransmissionComplete(); + static inline void enableInterruptVector(bool enable, uint32_t priority); diff --git a/src/modm/platform/uart/stm32/uart_hal_impl.hpp.in b/src/modm/platform/uart/stm32/uart_hal_impl.hpp.in index 623801a7f0..f24d5e9a88 100644 --- a/src/modm/platform/uart/stm32/uart_hal_impl.hpp.in +++ b/src/modm/platform/uart/stm32/uart_hal_impl.hpp.in @@ -210,6 +210,16 @@ bool %% endif } +bool +{{ hal }}::isTransmissionComplete() +{ +%% if extended_driver + return {{ peripheral }}->ISR & USART_ISR_TC; +%% else + return {{ peripheral }}->SR & USART_SR_TC; +%% endif +} + void {{ hal }}::enableInterruptVector(bool enable, uint32_t priority) {