aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32wba/src/bin
diff options
context:
space:
mode:
Diffstat (limited to 'examples/stm32wba/src/bin')
-rw-r--r--examples/stm32wba/src/bin/usb_hs_serial.rs23
1 files changed, 12 insertions, 11 deletions
diff --git a/examples/stm32wba/src/bin/usb_hs_serial.rs b/examples/stm32wba/src/bin/usb_hs_serial.rs
index be2d0a4e5..d77a679fe 100644
--- a/examples/stm32wba/src/bin/usb_hs_serial.rs
+++ b/examples/stm32wba/src/bin/usb_hs_serial.rs
@@ -5,12 +5,12 @@ use defmt::{panic, *};
5use defmt_rtt as _; // global logger 5use defmt_rtt as _; // global logger
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_futures::join::join; 7use embassy_futures::join::join;
8use embassy_stm32::rcc::PllSource;
9use embassy_stm32::rcc::{mux, AHBPrescaler, APBPrescaler, Hse, HsePrescaler, Sysclk, VoltageScale};
8use embassy_stm32::usb::{Driver, Instance}; 10use embassy_stm32::usb::{Driver, Instance};
9use embassy_stm32::{bind_interrupts, peripherals, usb, Config}; 11use embassy_stm32::{bind_interrupts, peripherals, usb, Config};
10use embassy_stm32::rcc::{VoltageScale, Hse, HsePrescaler, APBPrescaler, AHBPrescaler, Sysclk, mux};
11use embassy_usb::class::cdc_acm::{CdcAcmClass, State}; 12use embassy_usb::class::cdc_acm::{CdcAcmClass, State};
12use embassy_usb::driver::EndpointError; 13use embassy_usb::driver::EndpointError;
13use embassy_stm32::rcc::PllSource;
14use embassy_usb::Builder; 14use embassy_usb::Builder;
15use panic_probe as _; 15use panic_probe as _;
16 16
@@ -25,7 +25,9 @@ async fn main(_spawner: Spawner) {
25 let mut config = Config::default(); 25 let mut config = Config::default();
26 26
27 // External HSE (32 MHz) setup 27 // External HSE (32 MHz) setup
28 config.rcc.hse = Some(Hse { prescaler: HsePrescaler::DIV1 }); 28 config.rcc.hse = Some(Hse {
29 prescaler: HsePrescaler::DIV1,
30 });
29 31
30 // route HSE into the USB‐OTG‐HS block 32 // route HSE into the USB‐OTG‐HS block
31 config.rcc.mux.otghssel = mux::Otghssel::HSE; 33 config.rcc.mux.otghssel = mux::Otghssel::HSE;
@@ -33,16 +35,15 @@ async fn main(_spawner: Spawner) {
33 35
34 // Fine-tune PLL1 dividers/multipliers 36 // Fine-tune PLL1 dividers/multipliers
35 config.rcc.pll1 = Some(embassy_stm32::rcc::Pll { 37 config.rcc.pll1 = Some(embassy_stm32::rcc::Pll {
36 source: PllSource::HSE, 38 source: PllSource::HSE,
37 pllm: 2, // PLLM = 2 → HSE / 2 = 16 MHz input 39 pllm: 2, // PLLM = 2 → HSE / 2 = 16 MHz input
38 mul: 12, // PLLN = 12 → 16 MHz * 12 = 192 MHz VCO 40 mul: 12, // PLLN = 12 → 16 MHz * 12 = 192 MHz VCO
39 divp: Some(2), // PLLP = 2 → 96 MHz 41 divp: Some(2), // PLLP = 2 → 96 MHz
40 divq: Some(2), // PLLQ = 2 → 96 MHz 42 divq: Some(2), // PLLQ = 2 → 96 MHz
41 divr: Some(2), // PLLR = 2 → 96 MHz 43 divr: Some(2), // PLLR = 2 → 96 MHz
42 frac: Some(4096), // Fractional part (enabled) 44 frac: Some(4096), // Fractional part (enabled)
43 }); 45 });
44 46
45
46 config.rcc.ahb_pre = AHBPrescaler::DIV1; 47 config.rcc.ahb_pre = AHBPrescaler::DIV1;
47 config.rcc.apb1_pre = APBPrescaler::DIV1; 48 config.rcc.apb1_pre = APBPrescaler::DIV1;
48 config.rcc.apb2_pre = APBPrescaler::DIV1; 49 config.rcc.apb2_pre = APBPrescaler::DIV1;