aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/timer/simple_pwm.rs
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2025-09-06 00:11:59 +0200
committerDario Nieuwenhuis <[email protected]>2025-09-06 00:14:03 +0200
commita23c4b7bca15bc00f4b5c4af200f17eb0097e94b (patch)
treef293891a3dad44dc808f31f7aa6fd7fcdb21bbe5 /embassy-stm32/src/timer/simple_pwm.rs
parent35f4ae378cbc9a1263e46baaeac536cae2337896 (diff)
stm32/afio: make af_num() unavailable in afio chips.
Diffstat (limited to 'embassy-stm32/src/timer/simple_pwm.rs')
-rw-r--r--embassy-stm32/src/timer/simple_pwm.rs18
1 files changed, 7 insertions, 11 deletions
diff --git a/embassy-stm32/src/timer/simple_pwm.rs b/embassy-stm32/src/timer/simple_pwm.rs
index c08a3939f..e6165e42b 100644
--- a/embassy-stm32/src/timer/simple_pwm.rs
+++ b/embassy-stm32/src/timer/simple_pwm.rs
@@ -40,9 +40,7 @@ impl<'d, T: GeneralInstance4Channel, C: TimerChannel, #[cfg(afio)] A> if_afio!(P
40 pub fn new(pin: Peri<'d, if_afio!(impl TimerPin<T, C, A>)>, output_type: OutputType) -> Self { 40 pub fn new(pin: Peri<'d, if_afio!(impl TimerPin<T, C, A>)>, output_type: OutputType) -> Self {
41 critical_section::with(|_| { 41 critical_section::with(|_| {
42 pin.set_low(); 42 pin.set_low();
43 pin.set_as_af(pin.af_num(), AfType::output(output_type, Speed::VeryHigh)); 43 set_as_af!(pin, AfType::output(output_type, Speed::VeryHigh));
44 #[cfg(afio)]
45 pin.afio_remap();
46 }); 44 });
47 PwmPin { 45 PwmPin {
48 pin: pin.into(), 46 pin: pin.into(),
@@ -54,15 +52,13 @@ impl<'d, T: GeneralInstance4Channel, C: TimerChannel, #[cfg(afio)] A> if_afio!(P
54 pub fn new_with_config(pin: Peri<'d, if_afio!(impl TimerPin<T, C, A>)>, pin_config: PwmPinConfig) -> Self { 52 pub fn new_with_config(pin: Peri<'d, if_afio!(impl TimerPin<T, C, A>)>, pin_config: PwmPinConfig) -> Self {
55 critical_section::with(|_| { 53 critical_section::with(|_| {
56 pin.set_low(); 54 pin.set_low();
57 pin.set_as_af( 55 #[cfg(gpio_v1)]
58 pin.af_num(), 56 set_as_af!(pin, AfType::output(pin_config.output_type, pin_config.speed));
59 #[cfg(gpio_v1)] 57 #[cfg(gpio_v2)]
60 AfType::output(pin_config.output_type, pin_config.speed), 58 set_as_af!(
61 #[cfg(gpio_v2)] 59 pin,
62 AfType::output_pull(pin_config.output_type, pin_config.speed, pin_config.pull), 60 AfType::output_pull(pin_config.output_type, pin_config.speed, pin_config.pull)
63 ); 61 );
64 #[cfg(afio)]
65 pin.afio_remap();
66 }); 62 });
67 PwmPin { 63 PwmPin {
68 pin: pin.into(), 64 pin: pin.into(),