aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxoviat <[email protected]>2025-12-03 22:50:33 +0000
committerGitHub <[email protected]>2025-12-03 22:50:33 +0000
commit201502e308564a233bf3649b1a974d5d4374bd96 (patch)
tree53212668bb3570c28d660f56ce96fd296652b1e7
parenta3961fe006dad66d11dd5ad22b393ef37689d60a (diff)
parentfab778e108814fae68e91c67e38c164b37075744 (diff)
Merge pull request #4985 from cesardtamayo/feat/blinky_example_init_fix
Feat/blinky example init fix
-rw-r--r--examples/stm32wba6/src/bin/blinky.rs33
1 files changed, 31 insertions, 2 deletions
diff --git a/examples/stm32wba6/src/bin/blinky.rs b/examples/stm32wba6/src/bin/blinky.rs
index 0d803b257..95f3339b7 100644
--- a/examples/stm32wba6/src/bin/blinky.rs
+++ b/examples/stm32wba6/src/bin/blinky.rs
@@ -3,16 +3,45 @@
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 // LD2 - PC4
44 let mut led = Output::new(p.PC4, Level::High, Speed::Low);
16 45
17 loop { 46 loop {
18 info!("high"); 47 info!("high");