From a3ca44b2b4a41ef872f72477dd1f90aeb855a30d Mon Sep 17 00:00:00 2001 From: xoviat Date: Tue, 28 Oct 2025 12:54:33 -0500 Subject: timer/low_level: add ability to set master mode --- embassy-stm32/CHANGELOG.md | 1 + embassy-stm32/src/timer/low_level.rs | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/embassy-stm32/CHANGELOG.md b/embassy-stm32/CHANGELOG.md index 000d215b7..0c1c97665 100644 --- a/embassy-stm32/CHANGELOG.md +++ b/embassy-stm32/CHANGELOG.md @@ -36,6 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - feat: stm32/usart: add `de_assertion_time` and `de_deassertion_time` config options - change: stm32/uart: BufferedUartRx now returns all available bytes from the internal buffer - change: timer: added output compare values +- feat: timer: add ability to set master mode ## 0.4.0 - 2025-08-26 diff --git a/embassy-stm32/src/timer/low_level.rs b/embassy-stm32/src/timer/low_level.rs index 7c02e7e62..82645887e 100644 --- a/embassy-stm32/src/timer/low_level.rs +++ b/embassy-stm32/src/timer/low_level.rs @@ -10,7 +10,7 @@ use core::mem::ManuallyDrop; use embassy_hal_internal::Peri; // Re-export useful enums -pub use stm32_metapac::timer::vals::{FilterValue, Sms as SlaveMode, Ts as TriggerSource}; +pub use stm32_metapac::timer::vals::{FilterValue, Mms as MasterMode, Sms as SlaveMode, Ts as TriggerSource}; use super::*; use crate::pac::timer::vals; @@ -689,6 +689,11 @@ impl<'d, T: GeneralInstance4Channel> Timer<'d, T> { self.regs_gp16().dier().modify(|w| w.set_ccde(channel.index(), ccde)) } + /// Set Timer Master Mode + pub fn set_master_mode(&self, mms: MasterMode) { + self.regs_gp16().cr2().modify(|w| w.set_mms(mms)); + } + /// Set Timer Slave Mode pub fn set_slave_mode(&self, sms: SlaveMode) { self.regs_gp16().smcr().modify(|r| r.set_sms(sms)); -- cgit