aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorCesar Tamayo Claro <[email protected]>2025-12-03 15:26:36 -0700
committerCesar Tamayo Claro <[email protected]>2025-12-03 15:27:43 -0700
commitb9a89626a4121887c4c73551f169b279340b0a36 (patch)
tree9013b51da123870badcb58b36b3414262ef94610 /examples
parent95fd1f46a2c44f961e27f48920d87468d39a3793 (diff)
Update blinky example logic
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32wba6/src/bin/blinky.rs30
1 files changed, 29 insertions, 1 deletions
diff --git a/examples/stm32wba6/src/bin/blinky.rs b/examples/stm32wba6/src/bin/blinky.rs
index 0d803b257..e490ad6eb 100644
--- a/examples/stm32wba6/src/bin/blinky.rs
+++ b/examples/stm32wba6/src/bin/blinky.rs
@@ -3,13 +3,41 @@
3 3
4use defmt::*; 4use defmt::*;
5use embassy_executor::Spawner; 5use embassy_executor::Spawner;
6use embassy_stm32::Config;
6use embassy_stm32::gpio::{Level, Output, Speed}; 7use embassy_stm32::gpio::{Level, Output, Speed};
8use embassy_stm32::rcc::{
9 AHB5Prescaler, AHBPrescaler, APBPrescaler, PllDiv, PllMul, PllPreDiv, PllSource, Sysclk, VoltageScale,
10};
7use embassy_time::Timer; 11use embassy_time::Timer;
8use {defmt_rtt as _, panic_probe as _}; 12use {defmt_rtt as _, panic_probe as _};
9 13
10#[embassy_executor::main] 14#[embassy_executor::main]
11async fn main(_spawner: Spawner) { 15async fn main(_spawner: Spawner) {
12 let p = embassy_stm32::init(Default::default()); 16 let mut config = Config::default();
17 // Fine-tune PLL1 dividers/multipliers
18 config.rcc.pll1 = Some(embassy_stm32::rcc::Pll {
19 source: PllSource::HSI,
20 prediv: PllPreDiv::DIV1, // PLLM = 1 → HSI / 1 = 16 MHz
21 mul: PllMul::MUL30, // PLLN = 30 → 16 MHz * 30 = 480 MHz VCO
22 divr: Some(PllDiv::DIV5), // PLLR = 5 → 96 MHz (Sysclk)
23 // divq: Some(PllDiv::DIV10), // PLLQ = 10 → 48 MHz (NOT USED)
24 divq: None,
25 divp: Some(PllDiv::DIV30), // PLLP = 30 → 16 MHz (USBOTG)
26 frac: Some(0), // Fractional part (enabled)
27 });
28
29 config.rcc.ahb_pre = AHBPrescaler::DIV1;
30 config.rcc.apb1_pre = APBPrescaler::DIV1;
31 config.rcc.apb2_pre = APBPrescaler::DIV1;
32 config.rcc.apb7_pre = APBPrescaler::DIV1;
33 config.rcc.ahb5_pre = AHB5Prescaler::DIV4;
34
35 // voltage scale for max performance
36 config.rcc.voltage_scale = VoltageScale::RANGE1;
37 // route PLL1_P into the USB‐OTG‐HS block
38 config.rcc.sys = Sysclk::PLL1_R;
39
40 let p = embassy_stm32::init(config);
13 info!("Hello World!"); 41 info!("Hello World!");
14 42
15 let mut led = Output::new(p.PB4, Level::High, Speed::Low); 43 let mut led = Output::new(p.PB4, Level::High, Speed::Low);