diff --git a/radio/src/targets/common/arm/stm32/module_timer_driver.cpp b/radio/src/targets/common/arm/stm32/module_timer_driver.cpp index 4dce6bc4d..6c3aad84a 100644 --- a/radio/src/targets/common/arm/stm32/module_timer_driver.cpp +++ b/radio/src/targets/common/arm/stm32/module_timer_driver.cpp @@ -58,8 +58,21 @@ static void module_timer_send(void* ctx, const etx_timer_config_t* cfg, stm32_pulse_start_dma_req(timer, pulses, length, ocmode, ocval); } +static bool module_timer_tx_complete(void* ctx) +{ + auto tim = (const stm32_pulse_timer_t*)ctx; + + if (LL_DMA_IsEnabledStream(tim->DMAx, tim->DMA_Stream)) + { + return false; + } + + return true; +} + const etx_timer_driver_t STM32ModuleTimerDriver = { .init = module_timer_init, .deinit = module_timer_deinit, .send = module_timer_send, + .txCompleted = module_timer_tx_complete }; diff --git a/radio/src/targets/simu/module_drivers.cpp b/radio/src/targets/simu/module_drivers.cpp index f75add52b..69dd01060 100644 --- a/radio/src/targets/simu/module_drivers.cpp +++ b/radio/src/targets/simu/module_drivers.cpp @@ -122,10 +122,13 @@ static void module_timer_send(void* ctx, const etx_timer_config_t* cfg, const void* pulses, uint16_t length) {} +static bool module_timer_tx_completed(void* ctx) { return true; } + const etx_timer_driver_t _fakeTimerDriver = { .init = module_timer_init, .deinit = module_timer_deinit, .send = module_timer_send, + .txCompleted = module_timer_tx_completed, }; #endif