From 457d783d3b323ee425f3eedd3b097c7690b7665c Mon Sep 17 00:00:00 2001 From: Priec Date: Fri, 31 Oct 2025 11:46:21 +0100 Subject: [PATCH] FINAL FIX WORKING OH MY GOSH YES, We have to leak the timer to keep it toggled on after going out of scope to not call destructor --- dma_gpio/src/dma_timer.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dma_gpio/src/dma_timer.rs b/dma_gpio/src/dma_timer.rs index ff7baf6..bdd1663 100644 --- a/dma_gpio/src/dma_timer.rs +++ b/dma_gpio/src/dma_timer.rs @@ -6,12 +6,14 @@ use embassy_stm32::{ timer::low_level::Timer, Peri, }; +use core::mem; use embassy_stm32::pac::timer::vals::Urs; /// Initializes TIM6 to tick at `baud * oversample` frequency. /// Each TIM6 update event triggers one DMA beat. pub fn init_tim6_for_uart<'d>(tim6: Peri<'d, TIM6>, baud: u32, oversample: u16) { + rcc::enable_and_reset::(); let ll = Timer::new(tim6); let f_tim6 = rcc::frequency::().0; @@ -45,4 +47,5 @@ pub fn init_tim6_for_uart<'d>(tim6: Peri<'d, TIM6>, baud: u32, oversample: u16) w.set_udis(false); w.set_urs(Urs::ANY_EVENT); }); + mem::forget(ll); }