aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2022-08-17 22:25:58 +0200
committerDario Nieuwenhuis <[email protected]>2022-08-17 22:25:58 +0200
commit2e85eaf7d5f4dcf6d84f426542b8ec87aa51c429 (patch)
tree1d22c32eae26435677df89083d71f50fc298a09f
parentfc6e1e06b305d302d1b7ad17e8ef3a9be986c358 (diff)
examples Remove the `fn config()` idiom.
It was only useful for doing #[embassy_executor::main(config = "config()")]`. Now that it's gone, it makes more sense to build the config in main directly.
-rw-r--r--examples/stm32f1/src/bin/hello.rs9
-rw-r--r--examples/stm32f1/src/bin/usb_serial.rs9
-rw-r--r--examples/stm32f2/src/bin/pll.rs13
-rw-r--r--examples/stm32f3/src/bin/hello.rs9
-rw-r--r--examples/stm32f3/src/bin/usb_serial.rs11
-rw-r--r--examples/stm32f4/src/bin/hello.rs9
-rw-r--r--examples/stm32f4/src/bin/sdmmc.rs10
-rw-r--r--examples/stm32f7/src/bin/eth.rs9
-rw-r--r--examples/stm32f7/src/bin/hello.rs9
-rw-r--r--examples/stm32f7/src/bin/sdmmc.rs9
-rw-r--r--examples/stm32h7/src/bin/adc.rs9
-rw-r--r--examples/stm32h7/src/bin/camera.rs23
-rw-r--r--examples/stm32h7/src/bin/dac.rs14
-rw-r--r--examples/stm32h7/src/bin/eth.rs10
-rw-r--r--examples/stm32h7/src/bin/eth_client.rs10
-rw-r--r--examples/stm32h7/src/bin/fmc.rs9
-rw-r--r--examples/stm32h7/src/bin/low_level_timer_api.rs9
-rw-r--r--examples/stm32h7/src/bin/pwm.rs10
-rw-r--r--examples/stm32h7/src/bin/sdmmc.rs10
-rw-r--r--examples/stm32h7/src/bin/spi.rs14
-rw-r--r--examples/stm32h7/src/bin/spi_dma.rs14
-rw-r--r--examples/stm32l0/src/bin/button_exti.rs12
-rw-r--r--examples/stm32l0/src/bin/lorawan.rs9
-rw-r--r--examples/stm32l4/src/bin/rng.rs9
-rw-r--r--examples/stm32l5/src/bin/rng.rs9
-rw-r--r--examples/stm32l5/src/bin/usb_ethernet.rs12
-rw-r--r--examples/stm32l5/src/bin/usb_hid_mouse.rs12
-rw-r--r--examples/stm32l5/src/bin/usb_serial.rs12
-rw-r--r--examples/stm32wl/src/bin/lorawan.rs9
-rw-r--r--examples/stm32wl/src/bin/subghz.rs9
30 files changed, 107 insertions, 215 deletions
diff --git a/examples/stm32f1/src/bin/hello.rs b/examples/stm32f1/src/bin/hello.rs
index 721b21c36..57892d3cc 100644
--- a/examples/stm32f1/src/bin/hello.rs
+++ b/examples/stm32f1/src/bin/hello.rs
@@ -9,15 +9,12 @@ use embassy_stm32::time::Hertz;
9use embassy_stm32::Config; 9use embassy_stm32::Config;
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config { 12#[embassy_executor::main]
13async fn main(_spawner: Spawner) -> ! {
13 let mut config = Config::default(); 14 let mut config = Config::default();
14 config.rcc.sys_ck = Some(Hertz(36_000_000)); 15 config.rcc.sys_ck = Some(Hertz(36_000_000));
15 config 16 let _p = embassy_stm32::init(config);
16}
17 17
18#[embassy_executor::main]
19async fn main(_spawner: Spawner) -> ! {
20 let _p = embassy_stm32::init(config());
21 loop { 18 loop {
22 info!("Hello World!"); 19 info!("Hello World!");
23 Timer::after(Duration::from_secs(1)).await; 20 Timer::after(Duration::from_secs(1)).await;
diff --git a/examples/stm32f1/src/bin/usb_serial.rs b/examples/stm32f1/src/bin/usb_serial.rs
index 7f27e6251..2301c51b6 100644
--- a/examples/stm32f1/src/bin/usb_serial.rs
+++ b/examples/stm32f1/src/bin/usb_serial.rs
@@ -15,17 +15,14 @@ use embassy_usb_serial::{CdcAcmClass, State};
15use futures::future::join; 15use futures::future::join;
16use {defmt_rtt as _, panic_probe as _}; 16use {defmt_rtt as _, panic_probe as _};
17 17
18fn config() -> Config { 18#[embassy_executor::main]
19async fn main(_spawner: Spawner) {
19 let mut config = Config::default(); 20 let mut config = Config::default();
20 config.rcc.hse = Some(Hertz(8_000_000)); 21 config.rcc.hse = Some(Hertz(8_000_000));
21 config.rcc.sys_ck = Some(Hertz(48_000_000)); 22 config.rcc.sys_ck = Some(Hertz(48_000_000));
22 config.rcc.pclk1 = Some(Hertz(24_000_000)); 23 config.rcc.pclk1 = Some(Hertz(24_000_000));
23 config 24 let mut p = embassy_stm32::init(config);
24}
25 25
26#[embassy_executor::main]
27async fn main(_spawner: Spawner) {
28 let mut p = embassy_stm32::init(config());
29 info!("Hello World!"); 26 info!("Hello World!");
30 27
31 { 28 {
diff --git a/examples/stm32f2/src/bin/pll.rs b/examples/stm32f2/src/bin/pll.rs
index bc0c160ba..6fce7a716 100644
--- a/examples/stm32f2/src/bin/pll.rs
+++ b/examples/stm32f2/src/bin/pll.rs
@@ -14,8 +14,10 @@ use embassy_stm32::time::Hertz;
14use embassy_stm32::Config; 14use embassy_stm32::Config;
15use {defmt_rtt as _, panic_probe as _}; 15use {defmt_rtt as _, panic_probe as _};
16 16
17// Example config for maximum performance on a NUCLEO-F207ZG board 17#[embassy_executor::main]
18fn config() -> Config { 18async fn main(_spawner: Spawner) {
19 // Example config for maximum performance on a NUCLEO-F207ZG board
20
19 let mut config = Config::default(); 21 let mut config = Config::default();
20 // By default, HSE on the board comes from a 8 MHz clock signal (not a crystal) 22 // By default, HSE on the board comes from a 8 MHz clock signal (not a crystal)
21 config.rcc.hse = Some(HSEConfig { 23 config.rcc.hse = Some(HSEConfig {
@@ -40,12 +42,9 @@ fn config() -> Config {
40 config.rcc.apb1_pre = APBPrescaler::Div4; 42 config.rcc.apb1_pre = APBPrescaler::Div4;
41 // 120 MHz / 2 = 60 MHz APB2 frequency 43 // 120 MHz / 2 = 60 MHz APB2 frequency
42 config.rcc.apb2_pre = APBPrescaler::Div2; 44 config.rcc.apb2_pre = APBPrescaler::Div2;
43 config
44}
45 45
46#[embassy_executor::main] 46 let _p = embassy_stm32::init(config);
47async fn main(_spawner: Spawner) { 47
48 let _p = embassy_stm32::init(config());
49 loop { 48 loop {
50 Timer::after(Duration::from_millis(1000)).await; 49 Timer::after(Duration::from_millis(1000)).await;
51 info!("1s elapsed"); 50 info!("1s elapsed");
diff --git a/examples/stm32f3/src/bin/hello.rs b/examples/stm32f3/src/bin/hello.rs
index 7846912c9..cd59f7409 100644
--- a/examples/stm32f3/src/bin/hello.rs
+++ b/examples/stm32f3/src/bin/hello.rs
@@ -9,16 +9,13 @@ use embassy_stm32::time::Hertz;
9use embassy_stm32::Config; 9use embassy_stm32::Config;
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config { 12#[embassy_executor::main]
13async fn main(_spawner: Spawner) -> ! {
13 let mut config = Config::default(); 14 let mut config = Config::default();
14 config.rcc.hse = Some(Hertz(8_000_000)); 15 config.rcc.hse = Some(Hertz(8_000_000));
15 config.rcc.sysclk = Some(Hertz(16_000_000)); 16 config.rcc.sysclk = Some(Hertz(16_000_000));
16 config 17 let _p = embassy_stm32::init(config);
17}
18 18
19#[embassy_executor::main]
20async fn main(_spawner: Spawner) -> ! {
21 let _p = embassy_stm32::init(config());
22 loop { 19 loop {
23 info!("Hello World!"); 20 info!("Hello World!");
24 Timer::after(Duration::from_secs(1)).await; 21 Timer::after(Duration::from_secs(1)).await;
diff --git a/examples/stm32f3/src/bin/usb_serial.rs b/examples/stm32f3/src/bin/usb_serial.rs
index 36d38d87f..757643ea5 100644
--- a/examples/stm32f3/src/bin/usb_serial.rs
+++ b/examples/stm32f3/src/bin/usb_serial.rs
@@ -15,21 +15,16 @@ use embassy_usb_serial::{CdcAcmClass, State};
15use futures::future::join; 15use futures::future::join;
16use {defmt_rtt as _, panic_probe as _}; 16use {defmt_rtt as _, panic_probe as _};
17 17
18fn config() -> Config { 18#[embassy_executor::main]
19async fn main(_spawner: Spawner) {
19 let mut config = Config::default(); 20 let mut config = Config::default();
20
21 config.rcc.hse = Some(mhz(8)); 21 config.rcc.hse = Some(mhz(8));
22 config.rcc.sysclk = Some(mhz(48)); 22 config.rcc.sysclk = Some(mhz(48));
23 config.rcc.pclk1 = Some(mhz(24)); 23 config.rcc.pclk1 = Some(mhz(24));
24 config.rcc.pclk2 = Some(mhz(24)); 24 config.rcc.pclk2 = Some(mhz(24));
25 config.rcc.pll48 = true; 25 config.rcc.pll48 = true;
26 let p = embassy_stm32::init(config);
26 27
27 config
28}
29
30#[embassy_executor::main]
31async fn main(_spawner: Spawner) {
32 let p = embassy_stm32::init(config());
33 info!("Hello World!"); 28 info!("Hello World!");
34 29
35 // Needed for nucleo-stm32f303ze 30 // Needed for nucleo-stm32f303ze
diff --git a/examples/stm32f4/src/bin/hello.rs b/examples/stm32f4/src/bin/hello.rs
index 6facb9bb7..26d3555a2 100644
--- a/examples/stm32f4/src/bin/hello.rs
+++ b/examples/stm32f4/src/bin/hello.rs
@@ -9,15 +9,12 @@ use embassy_stm32::time::Hertz;
9use embassy_stm32::Config; 9use embassy_stm32::Config;
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config { 12#[embassy_executor::main]
13async fn main(_spawner: Spawner) -> ! {
13 let mut config = Config::default(); 14 let mut config = Config::default();
14 config.rcc.sys_ck = Some(Hertz(84_000_000)); 15 config.rcc.sys_ck = Some(Hertz(84_000_000));
15 config 16 let _p = embassy_stm32::init(config);
16}
17 17
18#[embassy_executor::main]
19async fn main(_spawner: Spawner) -> ! {
20 let _p = embassy_stm32::init(config());
21 loop { 18 loop {
22 info!("Hello World!"); 19 info!("Hello World!");
23 Timer::after(Duration::from_secs(1)).await; 20 Timer::after(Duration::from_secs(1)).await;
diff --git a/examples/stm32f4/src/bin/sdmmc.rs b/examples/stm32f4/src/bin/sdmmc.rs
index 996694f2c..b8e56d2e1 100644
--- a/examples/stm32f4/src/bin/sdmmc.rs
+++ b/examples/stm32f4/src/bin/sdmmc.rs
@@ -9,15 +9,11 @@ use embassy_stm32::time::mhz;
9use embassy_stm32::{interrupt, Config}; 9use embassy_stm32::{interrupt, Config};
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config {
13 let mut config = Config::default();
14 config.rcc.sys_ck = Some(mhz(48));
15 config
16}
17
18#[embassy_executor::main] 12#[embassy_executor::main]
19async fn main(_spawner: Spawner) -> ! { 13async fn main(_spawner: Spawner) -> ! {
20 let p = embassy_stm32::init(config()); 14 let mut config = Config::default();
15 config.rcc.sys_ck = Some(mhz(48));
16 let p = embassy_stm32::init(config);
21 info!("Hello World!"); 17 info!("Hello World!");
22 18
23 let irq = interrupt::take!(SDIO); 19 let irq = interrupt::take!(SDIO);
diff --git a/examples/stm32f7/src/bin/eth.rs b/examples/stm32f7/src/bin/eth.rs
index f8904fa03..1ec30353d 100644
--- a/examples/stm32f7/src/bin/eth.rs
+++ b/examples/stm32f7/src/bin/eth.rs
@@ -33,15 +33,12 @@ async fn net_task(stack: &'static Stack<Device>) -> ! {
33 stack.run().await 33 stack.run().await
34} 34}
35 35
36fn config() -> Config { 36#[embassy_executor::main]
37async fn main(spawner: Spawner) -> ! {
37 let mut config = Config::default(); 38 let mut config = Config::default();
38 config.rcc.sys_ck = Some(mhz(200)); 39 config.rcc.sys_ck = Some(mhz(200));
39 config 40 let p = embassy_stm32::init(config);
40}
41 41
42#[embassy_executor::main]
43async fn main(spawner: Spawner) -> ! {
44 let p = embassy_stm32::init(config());
45 info!("Hello World!"); 42 info!("Hello World!");
46 43
47 // Generate random seed. 44 // Generate random seed.
diff --git a/examples/stm32f7/src/bin/hello.rs b/examples/stm32f7/src/bin/hello.rs
index 6facb9bb7..26d3555a2 100644
--- a/examples/stm32f7/src/bin/hello.rs
+++ b/examples/stm32f7/src/bin/hello.rs
@@ -9,15 +9,12 @@ use embassy_stm32::time::Hertz;
9use embassy_stm32::Config; 9use embassy_stm32::Config;
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config { 12#[embassy_executor::main]
13async fn main(_spawner: Spawner) -> ! {
13 let mut config = Config::default(); 14 let mut config = Config::default();
14 config.rcc.sys_ck = Some(Hertz(84_000_000)); 15 config.rcc.sys_ck = Some(Hertz(84_000_000));
15 config 16 let _p = embassy_stm32::init(config);
16}
17 17
18#[embassy_executor::main]
19async fn main(_spawner: Spawner) -> ! {
20 let _p = embassy_stm32::init(config());
21 loop { 18 loop {
22 info!("Hello World!"); 19 info!("Hello World!");
23 Timer::after(Duration::from_secs(1)).await; 20 Timer::after(Duration::from_secs(1)).await;
diff --git a/examples/stm32f7/src/bin/sdmmc.rs b/examples/stm32f7/src/bin/sdmmc.rs
index 975c5b91f..9d97a1de4 100644
--- a/examples/stm32f7/src/bin/sdmmc.rs
+++ b/examples/stm32f7/src/bin/sdmmc.rs
@@ -9,15 +9,12 @@ use embassy_stm32::time::mhz;
9use embassy_stm32::{interrupt, Config}; 9use embassy_stm32::{interrupt, Config};
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config { 12#[embassy_executor::main]
13async fn main(_spawner: Spawner) -> ! {
13 let mut config = Config::default(); 14 let mut config = Config::default();
14 config.rcc.sys_ck = Some(mhz(200)); 15 config.rcc.sys_ck = Some(mhz(200));
15 config 16 let p = embassy_stm32::init(config);
16}
17 17
18#[embassy_executor::main]
19async fn main(_spawner: Spawner) -> ! {
20 let p = embassy_stm32::init(config());
21 info!("Hello World!"); 18 info!("Hello World!");
22 19
23 let irq = interrupt::take!(SDMMC1); 20 let irq = interrupt::take!(SDMMC1);
diff --git a/examples/stm32h7/src/bin/adc.rs b/examples/stm32h7/src/bin/adc.rs
index 96457e766..0715a0f62 100644
--- a/examples/stm32h7/src/bin/adc.rs
+++ b/examples/stm32h7/src/bin/adc.rs
@@ -11,18 +11,15 @@ use embassy_stm32::time::mhz;
11use embassy_stm32::Config; 11use embassy_stm32::Config;
12use {defmt_rtt as _, panic_probe as _}; 12use {defmt_rtt as _, panic_probe as _};
13 13
14pub fn config() -> Config { 14#[embassy_executor::main]
15async fn main(_spawner: Spawner) {
15 let mut config = Config::default(); 16 let mut config = Config::default();
16 config.rcc.sys_ck = Some(mhz(400)); 17 config.rcc.sys_ck = Some(mhz(400));
17 config.rcc.hclk = Some(mhz(200)); 18 config.rcc.hclk = Some(mhz(200));
18 config.rcc.per_ck = Some(mhz(64)); 19 config.rcc.per_ck = Some(mhz(64));
19 config.rcc.adc_clock_source = AdcClockSource::PerCk; 20 config.rcc.adc_clock_source = AdcClockSource::PerCk;
20 config 21 let mut p = embassy_stm32::init(config);
21}
22 22
23#[embassy_executor::main]
24async fn main(_spawner: Spawner) {
25 let mut p = embassy_stm32::init(config());
26 info!("Hello World!"); 23 info!("Hello World!");
27 24
28 let mut adc = Adc::new(p.ADC3, &mut Delay); 25 let mut adc = Adc::new(p.ADC3, &mut Delay);
diff --git a/examples/stm32h7/src/bin/camera.rs b/examples/stm32h7/src/bin/camera.rs
index 8e93a54c8..a281e75c9 100644
--- a/examples/stm32h7/src/bin/camera.rs
+++ b/examples/stm32h7/src/bin/camera.rs
@@ -10,10 +10,16 @@ use embassy_stm32::i2c::I2c;
10use embassy_stm32::rcc::{Mco, Mco1Source, McoClock}; 10use embassy_stm32::rcc::{Mco, Mco1Source, McoClock};
11use embassy_stm32::time::{khz, mhz}; 11use embassy_stm32::time::{khz, mhz};
12use embassy_stm32::{interrupt, Config}; 12use embassy_stm32::{interrupt, Config};
13use ov7725::*;
13use {defmt_rtt as _, panic_probe as _}; 14use {defmt_rtt as _, panic_probe as _};
14 15
15#[allow(unused)] 16const WIDTH: usize = 100;
16pub fn config() -> Config { 17const HEIGHT: usize = 100;
18
19static mut FRAME: [u32; WIDTH * HEIGHT / 2] = [0u32; WIDTH * HEIGHT / 2];
20
21#[embassy_executor::main]
22async fn main(_spawner: Spawner) {
17 let mut config = Config::default(); 23 let mut config = Config::default();
18 config.rcc.sys_ck = Some(mhz(400)); 24 config.rcc.sys_ck = Some(mhz(400));
19 config.rcc.hclk = Some(mhz(400)); 25 config.rcc.hclk = Some(mhz(400));
@@ -22,19 +28,8 @@ pub fn config() -> Config {
22 config.rcc.pclk2 = Some(mhz(100)); 28 config.rcc.pclk2 = Some(mhz(100));
23 config.rcc.pclk3 = Some(mhz(100)); 29 config.rcc.pclk3 = Some(mhz(100));
24 config.rcc.pclk4 = Some(mhz(100)); 30 config.rcc.pclk4 = Some(mhz(100));
25 config 31 let p = embassy_stm32::init(config);
26}
27 32
28use ov7725::*;
29
30const WIDTH: usize = 100;
31const HEIGHT: usize = 100;
32
33static mut FRAME: [u32; WIDTH * HEIGHT / 2] = [0u32; WIDTH * HEIGHT / 2];
34
35#[embassy_executor::main]
36async fn main(_spawner: Spawner) {
37 let p = embassy_stm32::init(config());
38 defmt::info!("Hello World!"); 33 defmt::info!("Hello World!");
39 let mco = Mco::new(p.MCO1, p.PA8, Mco1Source::Hsi, McoClock::Divided(3)); 34 let mco = Mco::new(p.MCO1, p.PA8, Mco1Source::Hsi, McoClock::Divided(3));
40 35
diff --git a/examples/stm32h7/src/bin/dac.rs b/examples/stm32h7/src/bin/dac.rs
index dece74bba..f12716370 100644
--- a/examples/stm32h7/src/bin/dac.rs
+++ b/examples/stm32h7/src/bin/dac.rs
@@ -9,19 +9,15 @@ use embassy_stm32::time::mhz;
9use embassy_stm32::Config; 9use embassy_stm32::Config;
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12pub fn config() -> Config {
13 let mut config = Config::default();
14 config.rcc.sys_ck = Some(mhz(400));
15 config.rcc.hclk = Some(mhz(200));
16 config.rcc.pll1.q_ck = Some(mhz(100));
17 config
18}
19
20#[entry] 12#[entry]
21fn main() -> ! { 13fn main() -> ! {
22 info!("Hello World, dude!"); 14 info!("Hello World, dude!");
23 15
24 let p = embassy_stm32::init(config()); 16 let mut config = Config::default();
17 config.rcc.sys_ck = Some(mhz(400));
18 config.rcc.hclk = Some(mhz(200));
19 config.rcc.pll1.q_ck = Some(mhz(100));
20 let p = embassy_stm32::init(config);
25 21
26 let mut dac = Dac::new_1ch(p.DAC1, p.PA4); 22 let mut dac = Dac::new_1ch(p.DAC1, p.PA4);
27 23
diff --git a/examples/stm32h7/src/bin/eth.rs b/examples/stm32h7/src/bin/eth.rs
index 7ad2f52c7..9039b7ee7 100644
--- a/examples/stm32h7/src/bin/eth.rs
+++ b/examples/stm32h7/src/bin/eth.rs
@@ -33,17 +33,13 @@ async fn net_task(stack: &'static Stack<Device>) -> ! {
33 stack.run().await 33 stack.run().await
34} 34}
35 35
36pub fn config() -> Config { 36#[embassy_executor::main]
37async fn main(spawner: Spawner) -> ! {
37 let mut config = Config::default(); 38 let mut config = Config::default();
38 config.rcc.sys_ck = Some(mhz(400)); 39 config.rcc.sys_ck = Some(mhz(400));
39 config.rcc.hclk = Some(mhz(200)); 40 config.rcc.hclk = Some(mhz(200));
40 config.rcc.pll1.q_ck = Some(mhz(100)); 41 config.rcc.pll1.q_ck = Some(mhz(100));
41 config 42 let p = embassy_stm32::init(config);
42}
43
44#[embassy_executor::main]
45async fn main(spawner: Spawner) -> ! {
46 let p = embassy_stm32::init(config());
47 info!("Hello World!"); 43 info!("Hello World!");
48 44
49 // Generate random seed. 45 // Generate random seed.
diff --git a/examples/stm32h7/src/bin/eth_client.rs b/examples/stm32h7/src/bin/eth_client.rs
index 736a2992e..25e75d71e 100644
--- a/examples/stm32h7/src/bin/eth_client.rs
+++ b/examples/stm32h7/src/bin/eth_client.rs
@@ -34,17 +34,13 @@ async fn net_task(stack: &'static Stack<Device>) -> ! {
34 stack.run().await 34 stack.run().await
35} 35}
36 36
37pub fn config() -> Config { 37#[embassy_executor::main]
38async fn main(spawner: Spawner) -> ! {
38 let mut config = Config::default(); 39 let mut config = Config::default();
39 config.rcc.sys_ck = Some(mhz(400)); 40 config.rcc.sys_ck = Some(mhz(400));
40 config.rcc.hclk = Some(mhz(200)); 41 config.rcc.hclk = Some(mhz(200));
41 config.rcc.pll1.q_ck = Some(mhz(100)); 42 config.rcc.pll1.q_ck = Some(mhz(100));
42 config 43 let p = embassy_stm32::init(config);
43}
44
45#[embassy_executor::main]
46async fn main(spawner: Spawner) -> ! {
47 let p = embassy_stm32::init(config());
48 info!("Hello World!"); 44 info!("Hello World!");
49 45
50 // Generate random seed. 46 // Generate random seed.
diff --git a/examples/stm32h7/src/bin/fmc.rs b/examples/stm32h7/src/bin/fmc.rs
index 838427b0a..1a0d073d0 100644
--- a/examples/stm32h7/src/bin/fmc.rs
+++ b/examples/stm32h7/src/bin/fmc.rs
@@ -10,17 +10,14 @@ use embassy_stm32::time::mhz;
10use embassy_stm32::Config; 10use embassy_stm32::Config;
11use {defmt_rtt as _, panic_probe as _}; 11use {defmt_rtt as _, panic_probe as _};
12 12
13pub fn config() -> Config { 13#[embassy_executor::main]
14async fn main(_spawner: Spawner) {
14 let mut config = Config::default(); 15 let mut config = Config::default();
15 config.rcc.sys_ck = Some(mhz(400)); 16 config.rcc.sys_ck = Some(mhz(400));
16 config.rcc.hclk = Some(mhz(200)); 17 config.rcc.hclk = Some(mhz(200));
17 config.rcc.pll1.q_ck = Some(mhz(100)); 18 config.rcc.pll1.q_ck = Some(mhz(100));
18 config 19 let p = embassy_stm32::init(config);
19}
20 20
21#[embassy_executor::main]
22async fn main(_spawner: Spawner) {
23 let p = embassy_stm32::init(config());
24 info!("Hello World!"); 21 info!("Hello World!");
25 22
26 let mut core_peri = cortex_m::Peripherals::take().unwrap(); 23 let mut core_peri = cortex_m::Peripherals::take().unwrap();
diff --git a/examples/stm32h7/src/bin/low_level_timer_api.rs b/examples/stm32h7/src/bin/low_level_timer_api.rs
index e759c47a8..59648d4b4 100644
--- a/examples/stm32h7/src/bin/low_level_timer_api.rs
+++ b/examples/stm32h7/src/bin/low_level_timer_api.rs
@@ -12,7 +12,8 @@ use embassy_stm32::time::{khz, mhz, Hertz};
12use embassy_stm32::{into_ref, Config, Peripheral, PeripheralRef}; 12use embassy_stm32::{into_ref, Config, Peripheral, PeripheralRef};
13use {defmt_rtt as _, panic_probe as _}; 13use {defmt_rtt as _, panic_probe as _};
14 14
15pub fn config() -> Config { 15#[embassy_executor::main]
16async fn main(_spawner: Spawner) {
16 let mut config = Config::default(); 17 let mut config = Config::default();
17 config.rcc.sys_ck = Some(mhz(400)); 18 config.rcc.sys_ck = Some(mhz(400));
18 config.rcc.hclk = Some(mhz(400)); 19 config.rcc.hclk = Some(mhz(400));
@@ -21,12 +22,8 @@ pub fn config() -> Config {
21 config.rcc.pclk2 = Some(mhz(100)); 22 config.rcc.pclk2 = Some(mhz(100));
22 config.rcc.pclk3 = Some(mhz(100)); 23 config.rcc.pclk3 = Some(mhz(100));
23 config.rcc.pclk4 = Some(mhz(100)); 24 config.rcc.pclk4 = Some(mhz(100));
24 config 25 let p = embassy_stm32::init(config);
25}
26 26
27#[embassy_executor::main]
28async fn main(_spawner: Spawner) {
29 let p = embassy_stm32::init(config());
30 info!("Hello World!"); 27 info!("Hello World!");
31 28
32 let mut pwm = SimplePwm32::new(p.TIM5, p.PA0, p.PA1, p.PA2, p.PA3, khz(10)); 29 let mut pwm = SimplePwm32::new(p.TIM5, p.PA0, p.PA1, p.PA2, p.PA3, khz(10));
diff --git a/examples/stm32h7/src/bin/pwm.rs b/examples/stm32h7/src/bin/pwm.rs
index 4797de0a0..b225d66e3 100644
--- a/examples/stm32h7/src/bin/pwm.rs
+++ b/examples/stm32h7/src/bin/pwm.rs
@@ -11,7 +11,8 @@ use embassy_stm32::time::{khz, mhz};
11use embassy_stm32::Config; 11use embassy_stm32::Config;
12use {defmt_rtt as _, panic_probe as _}; 12use {defmt_rtt as _, panic_probe as _};
13 13
14pub fn config() -> Config { 14#[embassy_executor::main]
15async fn main(_spawner: Spawner) {
15 let mut config = Config::default(); 16 let mut config = Config::default();
16 config.rcc.sys_ck = Some(mhz(400)); 17 config.rcc.sys_ck = Some(mhz(400));
17 config.rcc.hclk = Some(mhz(400)); 18 config.rcc.hclk = Some(mhz(400));
@@ -20,12 +21,7 @@ pub fn config() -> Config {
20 config.rcc.pclk2 = Some(mhz(100)); 21 config.rcc.pclk2 = Some(mhz(100));
21 config.rcc.pclk3 = Some(mhz(100)); 22 config.rcc.pclk3 = Some(mhz(100));
22 config.rcc.pclk4 = Some(mhz(100)); 23 config.rcc.pclk4 = Some(mhz(100));
23 config 24 let p = embassy_stm32::init(config);
24}
25
26#[embassy_executor::main]
27async fn main(_spawner: Spawner) {
28 let p = embassy_stm32::init(config());
29 info!("Hello World!"); 25 info!("Hello World!");
30 26
31 let ch1 = PwmPin::new_ch1(p.PA6); 27 let ch1 = PwmPin::new_ch1(p.PA6);
diff --git a/examples/stm32h7/src/bin/sdmmc.rs b/examples/stm32h7/src/bin/sdmmc.rs
index ec98bf14e..f44d88aca 100644
--- a/examples/stm32h7/src/bin/sdmmc.rs
+++ b/examples/stm32h7/src/bin/sdmmc.rs
@@ -9,15 +9,11 @@ use embassy_stm32::time::mhz;
9use embassy_stm32::{interrupt, Config}; 9use embassy_stm32::{interrupt, Config};
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config {
13 let mut config = Config::default();
14 config.rcc.sys_ck = Some(mhz(200));
15 config
16}
17
18#[embassy_executor::main] 12#[embassy_executor::main]
19async fn main(_spawner: Spawner) -> ! { 13async fn main(_spawner: Spawner) -> ! {
20 let p = embassy_stm32::init(config()); 14 let mut config = Config::default();
15 config.rcc.sys_ck = Some(mhz(200));
16 let p = embassy_stm32::init(config);
21 info!("Hello World!"); 17 info!("Hello World!");
22 18
23 let irq = interrupt::take!(SDMMC1); 19 let irq = interrupt::take!(SDMMC1);
diff --git a/examples/stm32h7/src/bin/spi.rs b/examples/stm32h7/src/bin/spi.rs
index dc8cb7f47..8f6f14850 100644
--- a/examples/stm32h7/src/bin/spi.rs
+++ b/examples/stm32h7/src/bin/spi.rs
@@ -16,14 +16,6 @@ use embassy_util::Forever;
16use heapless::String; 16use heapless::String;
17use {defmt_rtt as _, panic_probe as _}; 17use {defmt_rtt as _, panic_probe as _};
18 18
19pub fn config() -> Config {
20 let mut config = Config::default();
21 config.rcc.sys_ck = Some(mhz(400));
22 config.rcc.hclk = Some(mhz(200));
23 config.rcc.pll1.q_ck = Some(mhz(100));
24 config
25}
26
27#[embassy_executor::task] 19#[embassy_executor::task]
28async fn main_task(mut spi: spi::Spi<'static, SPI3, NoDma, NoDma>) { 20async fn main_task(mut spi: spi::Spi<'static, SPI3, NoDma, NoDma>) {
29 for n in 0u32.. { 21 for n in 0u32.. {
@@ -45,7 +37,11 @@ static EXECUTOR: Forever<Executor> = Forever::new();
45fn main() -> ! { 37fn main() -> ! {
46 info!("Hello World!"); 38 info!("Hello World!");
47 39
48 let p = embassy_stm32::init(config()); 40 let mut config = Config::default();
41 config.rcc.sys_ck = Some(mhz(400));
42 config.rcc.hclk = Some(mhz(200));
43 config.rcc.pll1.q_ck = Some(mhz(100));
44 let p = embassy_stm32::init(config);
49 45
50 let spi = spi::Spi::new( 46 let spi = spi::Spi::new(
51 p.SPI3, 47 p.SPI3,
diff --git a/examples/stm32h7/src/bin/spi_dma.rs b/examples/stm32h7/src/bin/spi_dma.rs
index 2631ed30c..d4c91a8e3 100644
--- a/examples/stm32h7/src/bin/spi_dma.rs
+++ b/examples/stm32h7/src/bin/spi_dma.rs
@@ -15,14 +15,6 @@ use embassy_util::Forever;
15use heapless::String; 15use heapless::String;
16use {defmt_rtt as _, panic_probe as _}; 16use {defmt_rtt as _, panic_probe as _};
17 17
18pub fn config() -> Config {
19 let mut config = Config::default();
20 config.rcc.sys_ck = Some(mhz(400));
21 config.rcc.hclk = Some(mhz(200));
22 config.rcc.pll1.q_ck = Some(mhz(100));
23 config
24}
25
26#[embassy_executor::task] 18#[embassy_executor::task]
27async fn main_task(mut spi: spi::Spi<'static, SPI3, DMA1_CH3, DMA1_CH4>) { 19async fn main_task(mut spi: spi::Spi<'static, SPI3, DMA1_CH3, DMA1_CH4>) {
28 for n in 0u32.. { 20 for n in 0u32.. {
@@ -41,7 +33,11 @@ static EXECUTOR: Forever<Executor> = Forever::new();
41fn main() -> ! { 33fn main() -> ! {
42 info!("Hello World!"); 34 info!("Hello World!");
43 35
44 let p = embassy_stm32::init(config()); 36 let mut config = Config::default();
37 config.rcc.sys_ck = Some(mhz(400));
38 config.rcc.hclk = Some(mhz(200));
39 config.rcc.pll1.q_ck = Some(mhz(100));
40 let p = embassy_stm32::init(config);
45 41
46 let spi = spi::Spi::new( 42 let spi = spi::Spi::new(
47 p.SPI3, 43 p.SPI3,
diff --git a/examples/stm32l0/src/bin/button_exti.rs b/examples/stm32l0/src/bin/button_exti.rs
index ab23fd5bc..bdd2fa3c1 100644
--- a/examples/stm32l0/src/bin/button_exti.rs
+++ b/examples/stm32l0/src/bin/button_exti.rs
@@ -6,17 +6,15 @@ use defmt::*;
6use embassy_executor::executor::Spawner; 6use embassy_executor::executor::Spawner;
7use embassy_stm32::exti::ExtiInput; 7use embassy_stm32::exti::ExtiInput;
8use embassy_stm32::gpio::{Input, Pull}; 8use embassy_stm32::gpio::{Input, Pull};
9use embassy_stm32::Config;
9use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
10 11
11fn config() -> embassy_stm32::Config {
12 let mut config = embassy_stm32::Config::default();
13 config.rcc.enable_hsi48 = true;
14 config
15}
16
17#[embassy_executor::main] 12#[embassy_executor::main]
18async fn main(_spawner: Spawner) { 13async fn main(_spawner: Spawner) {
19 let p = embassy_stm32::init(config()); 14 let mut config = Config::default();
15 config.rcc.enable_hsi48 = true;
16 let p = embassy_stm32::init(config);
17
20 let button = Input::new(p.PB2, Pull::Up); 18 let button = Input::new(p.PB2, Pull::Up);
21 let mut button = ExtiInput::new(button, p.EXTI2); 19 let mut button = ExtiInput::new(button, p.EXTI2);
22 20
diff --git a/examples/stm32l0/src/bin/lorawan.rs b/examples/stm32l0/src/bin/lorawan.rs
index 4e5b69362..9497cad72 100644
--- a/examples/stm32l0/src/bin/lorawan.rs
+++ b/examples/stm32l0/src/bin/lorawan.rs
@@ -18,16 +18,13 @@ use lorawan::default_crypto::DefaultFactory as Crypto;
18use lorawan_device::async_device::{region, Device, JoinMode}; 18use lorawan_device::async_device::{region, Device, JoinMode};
19use {defmt_rtt as _, panic_probe as _}; 19use {defmt_rtt as _, panic_probe as _};
20 20
21fn config() -> embassy_stm32::Config { 21#[embassy_executor::main]
22async fn main(_spawner: Spawner) {
22 let mut config = embassy_stm32::Config::default(); 23 let mut config = embassy_stm32::Config::default();
23 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSI16; 24 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSI16;
24 config.rcc.enable_hsi48 = true; 25 config.rcc.enable_hsi48 = true;
25 config 26 let p = embassy_stm32::init(config);
26}
27 27
28#[embassy_executor::main]
29async fn main(_spawner: Spawner) {
30 let p = embassy_stm32::init(config());
31 // SPI for sx127x 28 // SPI for sx127x
32 let spi = spi::Spi::new( 29 let spi = spi::Spi::new(
33 p.SPI1, 30 p.SPI1,
diff --git a/examples/stm32l4/src/bin/rng.rs b/examples/stm32l4/src/bin/rng.rs
index d0e1306a3..c90515626 100644
--- a/examples/stm32l4/src/bin/rng.rs
+++ b/examples/stm32l4/src/bin/rng.rs
@@ -9,7 +9,8 @@ use embassy_stm32::rng::Rng;
9use embassy_stm32::Config; 9use embassy_stm32::Config;
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config { 12#[embassy_executor::main]
13async fn main(_spawner: Spawner) {
13 let mut config = Config::default(); 14 let mut config = Config::default();
14 // 72Mhz clock (16 / 1 * 18 / 4) 15 // 72Mhz clock (16 / 1 * 18 / 4)
15 config.rcc.mux = ClockSrc::PLL( 16 config.rcc.mux = ClockSrc::PLL(
@@ -19,12 +20,8 @@ fn config() -> Config {
19 PLLMul::Mul18, 20 PLLMul::Mul18,
20 Some(PLLClkDiv::Div6), // 48Mhz (16 / 1 * 18 / 6) 21 Some(PLLClkDiv::Div6), // 48Mhz (16 / 1 * 18 / 6)
21 ); 22 );
22 config 23 let p = embassy_stm32::init(config);
23}
24 24
25#[embassy_executor::main]
26async fn main(_spawner: Spawner) {
27 let p = embassy_stm32::init(config());
28 info!("Hello World!"); 25 info!("Hello World!");
29 26
30 let mut rng = Rng::new(p.RNG); 27 let mut rng = Rng::new(p.RNG);
diff --git a/examples/stm32l5/src/bin/rng.rs b/examples/stm32l5/src/bin/rng.rs
index b7919424a..cec9078e6 100644
--- a/examples/stm32l5/src/bin/rng.rs
+++ b/examples/stm32l5/src/bin/rng.rs
@@ -9,7 +9,8 @@ use embassy_stm32::rng::Rng;
9use embassy_stm32::Config; 9use embassy_stm32::Config;
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config { 12#[embassy_executor::main]
13async fn main(_spawner: Spawner) {
13 let mut config = Config::default(); 14 let mut config = Config::default();
14 config.rcc.mux = ClockSrc::PLL( 15 config.rcc.mux = ClockSrc::PLL(
15 PLLSource::HSI16, 16 PLLSource::HSI16,
@@ -18,12 +19,8 @@ fn config() -> Config {
18 PLLMul::Mul8, 19 PLLMul::Mul8,
19 Some(PLLClkDiv::Div2), 20 Some(PLLClkDiv::Div2),
20 ); 21 );
21 config 22 let p = embassy_stm32::init(config);
22}
23 23
24#[embassy_executor::main]
25async fn main(_spawner: Spawner) {
26 let p = embassy_stm32::init(config());
27 info!("Hello World!"); 24 info!("Hello World!");
28 25
29 let mut rng = Rng::new(p.RNG); 26 let mut rng = Rng::new(p.RNG);
diff --git a/examples/stm32l5/src/bin/usb_ethernet.rs b/examples/stm32l5/src/bin/usb_ethernet.rs
index cc7578990..769b67a2b 100644
--- a/examples/stm32l5/src/bin/usb_ethernet.rs
+++ b/examples/stm32l5/src/bin/usb_ethernet.rs
@@ -83,19 +83,13 @@ async fn net_task(stack: &'static Stack<Device>) -> ! {
83 stack.run().await 83 stack.run().await
84} 84}
85 85
86fn config() -> Config { 86#[embassy_executor::main]
87async fn main(spawner: Spawner) {
87 let mut config = Config::default(); 88 let mut config = Config::default();
88 config.rcc.mux = ClockSrc::HSE(Hertz(16_000_000));
89
90 config.rcc.mux = ClockSrc::PLL(PLLSource::HSI16, PLLClkDiv::Div2, PLLSrcDiv::Div1, PLLMul::Mul10, None); 89 config.rcc.mux = ClockSrc::PLL(PLLSource::HSI16, PLLClkDiv::Div2, PLLSrcDiv::Div1, PLLMul::Mul10, None);
91 config.rcc.hsi48 = true; 90 config.rcc.hsi48 = true;
91 let p = embassy_stm32::init(config);
92 92
93 config
94}
95
96#[embassy_executor::main]
97async fn main(spawner: Spawner) {
98 let p = embassy_stm32::init(config());
99 // Create the driver, from the HAL. 93 // Create the driver, from the HAL.
100 let irq = interrupt::take!(USB_FS); 94 let irq = interrupt::take!(USB_FS);
101 let driver = Driver::new(p.USB, irq, p.PA12, p.PA11); 95 let driver = Driver::new(p.USB, irq, p.PA12, p.PA11);
diff --git a/examples/stm32l5/src/bin/usb_hid_mouse.rs b/examples/stm32l5/src/bin/usb_hid_mouse.rs
index b8eef6d0d..ef0a20a42 100644
--- a/examples/stm32l5/src/bin/usb_hid_mouse.rs
+++ b/examples/stm32l5/src/bin/usb_hid_mouse.rs
@@ -17,19 +17,13 @@ use futures::future::join;
17use usbd_hid::descriptor::{MouseReport, SerializedDescriptor}; 17use usbd_hid::descriptor::{MouseReport, SerializedDescriptor};
18use {defmt_rtt as _, panic_probe as _}; 18use {defmt_rtt as _, panic_probe as _};
19 19
20fn config() -> Config { 20#[embassy_executor::main]
21async fn main(_spawner: Spawner) {
21 let mut config = Config::default(); 22 let mut config = Config::default();
22 config.rcc.mux = ClockSrc::HSE(Hertz(16_000_000));
23
24 config.rcc.mux = ClockSrc::PLL(PLLSource::HSI16, PLLClkDiv::Div2, PLLSrcDiv::Div1, PLLMul::Mul10, None); 23 config.rcc.mux = ClockSrc::PLL(PLLSource::HSI16, PLLClkDiv::Div2, PLLSrcDiv::Div1, PLLMul::Mul10, None);
25 config.rcc.hsi48 = true; 24 config.rcc.hsi48 = true;
25 let p = embassy_stm32::init(config);
26 26
27 config
28}
29
30#[embassy_executor::main]
31async fn main(_spawner: Spawner) {
32 let p = embassy_stm32::init(config());
33 // Create the driver, from the HAL. 27 // Create the driver, from the HAL.
34 let irq = interrupt::take!(USB_FS); 28 let irq = interrupt::take!(USB_FS);
35 let driver = Driver::new(p.USB, irq, p.PA12, p.PA11); 29 let driver = Driver::new(p.USB, irq, p.PA12, p.PA11);
diff --git a/examples/stm32l5/src/bin/usb_serial.rs b/examples/stm32l5/src/bin/usb_serial.rs
index f8894231c..a763a0b56 100644
--- a/examples/stm32l5/src/bin/usb_serial.rs
+++ b/examples/stm32l5/src/bin/usb_serial.rs
@@ -14,19 +14,13 @@ use embassy_usb_serial::{CdcAcmClass, State};
14use futures::future::join; 14use futures::future::join;
15use {defmt_rtt as _, panic_probe as _}; 15use {defmt_rtt as _, panic_probe as _};
16 16
17fn config() -> Config { 17#[embassy_executor::main]
18async fn main(_spawner: Spawner) {
18 let mut config = Config::default(); 19 let mut config = Config::default();
19 config.rcc.mux = ClockSrc::HSE(Hertz(16_000_000));
20
21 config.rcc.mux = ClockSrc::PLL(PLLSource::HSI16, PLLClkDiv::Div2, PLLSrcDiv::Div1, PLLMul::Mul10, None); 20 config.rcc.mux = ClockSrc::PLL(PLLSource::HSI16, PLLClkDiv::Div2, PLLSrcDiv::Div1, PLLMul::Mul10, None);
22 config.rcc.hsi48 = true; 21 config.rcc.hsi48 = true;
22 let p = embassy_stm32::init(config);
23 23
24 config
25}
26
27#[embassy_executor::main]
28async fn main(_spawner: Spawner) {
29 let p = embassy_stm32::init(config());
30 info!("Hello World!"); 24 info!("Hello World!");
31 25
32 // Create the driver, from the HAL. 26 // Create the driver, from the HAL.
diff --git a/examples/stm32wl/src/bin/lorawan.rs b/examples/stm32wl/src/bin/lorawan.rs
index 35dae71a6..b6a3ca905 100644
--- a/examples/stm32wl/src/bin/lorawan.rs
+++ b/examples/stm32wl/src/bin/lorawan.rs
@@ -17,16 +17,13 @@ use lorawan::default_crypto::DefaultFactory as Crypto;
17use lorawan_device::async_device::{region, Device, JoinMode}; 17use lorawan_device::async_device::{region, Device, JoinMode};
18use {defmt_rtt as _, panic_probe as _}; 18use {defmt_rtt as _, panic_probe as _};
19 19
20fn config() -> embassy_stm32::Config { 20#[embassy_executor::main]
21async fn main(_spawner: Spawner) {
21 let mut config = embassy_stm32::Config::default(); 22 let mut config = embassy_stm32::Config::default();
22 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSI16; 23 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSI16;
23 config.rcc.enable_lsi = true; 24 config.rcc.enable_lsi = true;
24 config 25 let p = embassy_stm32::init(config);
25}
26 26
27#[embassy_executor::main]
28async fn main(_spawner: Spawner) {
29 let p = embassy_stm32::init(config());
30 unsafe { pac::RCC.ccipr().modify(|w| w.set_rngsel(0b01)) } 27 unsafe { pac::RCC.ccipr().modify(|w| w.set_rngsel(0b01)) }
31 28
32 let ctrl1 = Output::new(p.PC3.degrade(), Level::High, Speed::High); 29 let ctrl1 = Output::new(p.PC3.degrade(), Level::High, Speed::High);
diff --git a/examples/stm32wl/src/bin/subghz.rs b/examples/stm32wl/src/bin/subghz.rs
index 0e2d4103f..1b096514b 100644
--- a/examples/stm32wl/src/bin/subghz.rs
+++ b/examples/stm32wl/src/bin/subghz.rs
@@ -52,15 +52,12 @@ const TCXO_MODE: TcxoMode = TcxoMode::new()
52 52
53const TX_PARAMS: TxParams = TxParams::new().set_power(0x0D).set_ramp_time(RampTime::Micros40); 53const TX_PARAMS: TxParams = TxParams::new().set_power(0x0D).set_ramp_time(RampTime::Micros40);
54 54
55fn config() -> embassy_stm32::Config { 55#[embassy_executor::main]
56async fn main(_spawner: Spawner) {
56 let mut config = embassy_stm32::Config::default(); 57 let mut config = embassy_stm32::Config::default();
57 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSE32; 58 config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSE32;
58 config 59 let p = embassy_stm32::init(config);
59}
60 60
61#[embassy_executor::main]
62async fn main(_spawner: Spawner) {
63 let p = embassy_stm32::init(config());
64 let mut led1 = Output::new(p.PB15, Level::High, Speed::Low); 61 let mut led1 = Output::new(p.PB15, Level::High, Speed::Low);
65 let mut led2 = Output::new(p.PB9, Level::Low, Speed::Low); 62 let mut led2 = Output::new(p.PB9, Level::Low, Speed::Low);
66 let mut led3 = Output::new(p.PB11, Level::Low, Speed::Low); 63 let mut led3 = Output::new(p.PB11, Level::Low, Speed::Low);