aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2021-08-20 00:05:08 +0200
committerGitHub <[email protected]>2021-08-20 00:05:08 +0200
commit8e5f1f4b5e8ff20897ac86ca81605d50c3dfa966 (patch)
tree588a2c2a0d7e533bfad6a928bf0c7bc70c5b6be0 /examples
parent39baff8775845895b67ff62ced66fb420b558c55 (diff)
parent174c51f09707b8a475382071f99e0d9c44f93ab7 (diff)
Merge pull request #367 from embassy-rs/metapac-cleanup
stm32-metapac cleanups
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32f0/src/bin/hello.rs2
-rw-r--r--examples/stm32f0/src/example_common.rs7
-rw-r--r--examples/stm32f4/src/bin/blinky.rs5
-rw-r--r--examples/stm32f4/src/bin/button.rs5
-rw-r--r--examples/stm32f4/src/bin/button_exti.rs5
-rw-r--r--examples/stm32f4/src/bin/can.rs5
-rw-r--r--examples/stm32f4/src/bin/hello.rs1
-rw-r--r--examples/stm32f4/src/bin/spi.rs5
-rw-r--r--examples/stm32f4/src/bin/spi_dma.rs5
-rw-r--r--examples/stm32f4/src/bin/usart.rs5
-rw-r--r--examples/stm32f4/src/bin/usart_dma.rs5
-rw-r--r--examples/stm32h7/src/bin/blinky.rs3
-rw-r--r--examples/stm32h7/src/bin/button_exti.rs5
-rw-r--r--examples/stm32h7/src/bin/dac.rs5
-rw-r--r--examples/stm32h7/src/bin/eth.rs5
-rw-r--r--examples/stm32h7/src/bin/spi.rs5
-rw-r--r--examples/stm32h7/src/bin/spi_dma.rs5
-rw-r--r--examples/stm32h7/src/bin/usart.rs5
-rw-r--r--examples/stm32h7/src/bin/usart_dma.rs5
-rw-r--r--examples/stm32l0/Cargo.toml2
-rw-r--r--examples/stm32l0/src/bin/blinky.rs5
-rw-r--r--examples/stm32l0/src/bin/button.rs16
-rw-r--r--examples/stm32l0/src/bin/button_exti.rs1
-rw-r--r--examples/stm32l0/src/bin/spi.rs14
-rw-r--r--examples/stm32l0/src/bin/usart_dma.rs7
-rw-r--r--examples/stm32l0/src/bin/usart_irq.rs7
-rw-r--r--examples/stm32l4/Cargo.toml2
-rw-r--r--examples/stm32l4/src/bin/adc.rs3
-rw-r--r--examples/stm32l4/src/bin/blinky.rs5
-rw-r--r--examples/stm32l4/src/bin/button.rs5
-rw-r--r--examples/stm32l4/src/bin/button_exti.rs5
-rw-r--r--examples/stm32l4/src/bin/dac.rs3
-rw-r--r--examples/stm32l4/src/bin/spi.rs5
-rw-r--r--examples/stm32l4/src/bin/spi_dma.rs5
-rw-r--r--examples/stm32l4/src/bin/usart.rs5
-rw-r--r--examples/stm32l4/src/bin/usart_dma.rs5
-rw-r--r--examples/stm32wb55/src/bin/blinky.rs3
-rw-r--r--examples/stm32wb55/src/bin/button_exti.rs31
-rw-r--r--examples/stm32wl55/src/bin/blinky.rs3
-rw-r--r--examples/stm32wl55/src/bin/button.rs7
-rw-r--r--examples/stm32wl55/src/bin/button_exti.rs3
41 files changed, 50 insertions, 180 deletions
diff --git a/examples/stm32f0/src/bin/hello.rs b/examples/stm32f0/src/bin/hello.rs
index 8429cc603..418f27943 100644
--- a/examples/stm32f0/src/bin/hello.rs
+++ b/examples/stm32f0/src/bin/hello.rs
@@ -12,7 +12,7 @@ use embassy_stm32::Peripherals;
12#[path = "../example_common.rs"] 12#[path = "../example_common.rs"]
13mod example_common; 13mod example_common;
14 14
15#[embassy::main(config = "example_common::config()")] 15#[embassy::main]
16async fn main(_spawner: Spawner, _p: Peripherals) -> ! { 16async fn main(_spawner: Spawner, _p: Peripherals) -> ! {
17 loop { 17 loop {
18 Timer::after(Duration::from_secs(1)).await; 18 Timer::after(Duration::from_secs(1)).await;
diff --git a/examples/stm32f0/src/example_common.rs b/examples/stm32f0/src/example_common.rs
index f50119653..54d633837 100644
--- a/examples/stm32f0/src/example_common.rs
+++ b/examples/stm32f0/src/example_common.rs
@@ -6,13 +6,6 @@ use panic_probe as _;
6pub use defmt::*; 6pub use defmt::*;
7 7
8use core::sync::atomic::{AtomicUsize, Ordering}; 8use core::sync::atomic::{AtomicUsize, Ordering};
9use embassy_stm32::Config;
10
11pub fn config() -> Config {
12 let mut config = Config::default();
13 config.rcc.enable_debug_wfe = true;
14 config
15}
16 9
17defmt::timestamp! {"{=u64}", { 10defmt::timestamp! {"{=u64}", {
18 static COUNT: AtomicUsize = AtomicUsize::new(0); 11 static COUNT: AtomicUsize = AtomicUsize::new(0);
diff --git a/examples/stm32f4/src/bin/blinky.rs b/examples/stm32f4/src/bin/blinky.rs
index b3a0ffb8e..a30887f7d 100644
--- a/examples/stm32f4/src/bin/blinky.rs
+++ b/examples/stm32f4/src/bin/blinky.rs
@@ -8,7 +8,6 @@
8mod example_common; 8mod example_common;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy::time::{Duration, Timer}; 10use embassy::time::{Duration, Timer};
11use embassy_stm32::dbgmcu::Dbgmcu;
12use embassy_stm32::gpio::{Level, Output, Speed}; 11use embassy_stm32::gpio::{Level, Output, Speed};
13use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
14use embedded_hal::digital::v2::OutputPin; 13use embedded_hal::digital::v2::OutputPin;
@@ -18,10 +17,6 @@ use example_common::*;
18async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
19 info!("Hello World!"); 18 info!("Hello World!");
20 19
21 unsafe {
22 Dbgmcu::enable_all();
23 }
24
25 let mut led = Output::new(p.PB7, Level::High, Speed::Low); 20 let mut led = Output::new(p.PB7, Level::High, Speed::Low);
26 21
27 loop { 22 loop {
diff --git a/examples/stm32f4/src/bin/button.rs b/examples/stm32f4/src/bin/button.rs
index 90998cf46..04fcfcc21 100644
--- a/examples/stm32f4/src/bin/button.rs
+++ b/examples/stm32f4/src/bin/button.rs
@@ -7,7 +7,6 @@
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9use cortex_m_rt::entry; 9use cortex_m_rt::entry;
10use embassy_stm32::dbgmcu::Dbgmcu;
11use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; 10use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
12use embedded_hal::digital::v2::{InputPin, OutputPin}; 11use embedded_hal::digital::v2::{InputPin, OutputPin};
13use example_common::*; 12use example_common::*;
@@ -16,10 +15,6 @@ use example_common::*;
16fn main() -> ! { 15fn main() -> ! {
17 info!("Hello World!"); 16 info!("Hello World!");
18 17
19 unsafe {
20 Dbgmcu::enable_all();
21 }
22
23 let p = embassy_stm32::init(Default::default()); 18 let p = embassy_stm32::init(Default::default());
24 19
25 let button = Input::new(p.PC13, Pull::Down); 20 let button = Input::new(p.PC13, Pull::Down);
diff --git a/examples/stm32f4/src/bin/button_exti.rs b/examples/stm32f4/src/bin/button_exti.rs
index ee43fa7d9..49c23ca3b 100644
--- a/examples/stm32f4/src/bin/button_exti.rs
+++ b/examples/stm32f4/src/bin/button_exti.rs
@@ -7,7 +7,6 @@
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy_stm32::dbgmcu::Dbgmcu;
11use embassy_stm32::exti::ExtiInput; 10use embassy_stm32::exti::ExtiInput;
12use embassy_stm32::gpio::{Input, Pull}; 11use embassy_stm32::gpio::{Input, Pull};
13use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
@@ -18,10 +17,6 @@ use example_common::*;
18async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
19 info!("Hello World!"); 18 info!("Hello World!");
20 19
21 unsafe {
22 Dbgmcu::enable_all();
23 }
24
25 let button = Input::new(p.PC13, Pull::Down); 20 let button = Input::new(p.PC13, Pull::Down);
26 let mut button = ExtiInput::new(button, p.EXTI13); 21 let mut button = ExtiInput::new(button, p.EXTI13);
27 22
diff --git a/examples/stm32f4/src/bin/can.rs b/examples/stm32f4/src/bin/can.rs
index 2bb24f045..29dff5510 100644
--- a/examples/stm32f4/src/bin/can.rs
+++ b/examples/stm32f4/src/bin/can.rs
@@ -10,7 +10,6 @@ mod example_common;
10use cortex_m_rt::entry; 10use cortex_m_rt::entry;
11use embassy_stm32::can::filter::Mask32; 11use embassy_stm32::can::filter::Mask32;
12use embassy_stm32::can::{Can, Frame, StandardId}; 12use embassy_stm32::can::{Can, Frame, StandardId};
13use embassy_stm32::dbgmcu::Dbgmcu;
14use embassy_stm32::gpio::{Input, Pull}; 13use embassy_stm32::gpio::{Input, Pull};
15use example_common::*; 14use example_common::*;
16 15
@@ -18,10 +17,6 @@ use example_common::*;
18fn main() -> ! { 17fn main() -> ! {
19 info!("Hello World!"); 18 info!("Hello World!");
20 19
21 unsafe {
22 Dbgmcu::enable_all();
23 }
24
25 let mut p = embassy_stm32::init(Default::default()); 20 let mut p = embassy_stm32::init(Default::default());
26 21
27 // The next two lines are a workaround for testing without transceiver. 22 // The next two lines are a workaround for testing without transceiver.
diff --git a/examples/stm32f4/src/bin/hello.rs b/examples/stm32f4/src/bin/hello.rs
index 1b8730aea..8059f4b5a 100644
--- a/examples/stm32f4/src/bin/hello.rs
+++ b/examples/stm32f4/src/bin/hello.rs
@@ -17,7 +17,6 @@ mod example_common;
17fn config() -> Config { 17fn config() -> Config {
18 let mut config = Config::default(); 18 let mut config = Config::default();
19 config.rcc.sys_ck = Some(Hertz(84_000_000)); 19 config.rcc.sys_ck = Some(Hertz(84_000_000));
20 config.rcc.enable_debug_wfe = true;
21 config 20 config
22} 21}
23 22
diff --git a/examples/stm32f4/src/bin/spi.rs b/examples/stm32f4/src/bin/spi.rs
index bb130a2e2..19b6c62aa 100644
--- a/examples/stm32f4/src/bin/spi.rs
+++ b/examples/stm32f4/src/bin/spi.rs
@@ -8,7 +8,6 @@
8mod example_common; 8mod example_common;
9 9
10use cortex_m_rt::entry; 10use cortex_m_rt::entry;
11use embassy_stm32::dbgmcu::Dbgmcu;
12use embassy_stm32::dma::NoDma; 11use embassy_stm32::dma::NoDma;
13use embassy_stm32::gpio::{Level, Output, Speed}; 12use embassy_stm32::gpio::{Level, Output, Speed};
14use embassy_stm32::spi::{Config, Spi}; 13use embassy_stm32::spi::{Config, Spi};
@@ -21,10 +20,6 @@ use example_common::*;
21fn main() -> ! { 20fn main() -> ! {
22 info!("Hello World, dude!"); 21 info!("Hello World, dude!");
23 22
24 unsafe {
25 Dbgmcu::enable_all();
26 }
27
28 let p = embassy_stm32::init(Default::default()); 23 let p = embassy_stm32::init(Default::default());
29 24
30 let mut spi = Spi::new( 25 let mut spi = Spi::new(
diff --git a/examples/stm32f4/src/bin/spi_dma.rs b/examples/stm32f4/src/bin/spi_dma.rs
index a965bef70..ef88fbb9e 100644
--- a/examples/stm32f4/src/bin/spi_dma.rs
+++ b/examples/stm32f4/src/bin/spi_dma.rs
@@ -9,7 +9,6 @@ mod example_common;
9use core::fmt::Write; 9use core::fmt::Write;
10use core::str::from_utf8; 10use core::str::from_utf8;
11use embassy::executor::Spawner; 11use embassy::executor::Spawner;
12use embassy_stm32::dbgmcu::Dbgmcu;
13use embassy_stm32::spi::{Config, Spi}; 12use embassy_stm32::spi::{Config, Spi};
14use embassy_stm32::time::Hertz; 13use embassy_stm32::time::Hertz;
15use embassy_stm32::Peripherals; 14use embassy_stm32::Peripherals;
@@ -21,10 +20,6 @@ use heapless::String;
21async fn main(_spawner: Spawner, p: Peripherals) { 20async fn main(_spawner: Spawner, p: Peripherals) {
22 info!("Hello World!"); 21 info!("Hello World!");
23 22
24 unsafe {
25 Dbgmcu::enable_all();
26 }
27
28 let mut spi = Spi::new( 23 let mut spi = Spi::new(
29 p.SPI1, 24 p.SPI1,
30 p.PB3, 25 p.PB3,
diff --git a/examples/stm32f4/src/bin/usart.rs b/examples/stm32f4/src/bin/usart.rs
index 781c6a958..8bb2ada9e 100644
--- a/examples/stm32f4/src/bin/usart.rs
+++ b/examples/stm32f4/src/bin/usart.rs
@@ -7,7 +7,6 @@
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9use cortex_m_rt::entry; 9use cortex_m_rt::entry;
10use embassy_stm32::dbgmcu::Dbgmcu;
11use embassy_stm32::dma::NoDma; 10use embassy_stm32::dma::NoDma;
12use embassy_stm32::usart::{Config, Uart}; 11use embassy_stm32::usart::{Config, Uart};
13use embedded_hal::blocking::serial::Write; 12use embedded_hal::blocking::serial::Write;
@@ -17,10 +16,6 @@ use example_common::*;
17fn main() -> ! { 16fn main() -> ! {
18 info!("Hello World!"); 17 info!("Hello World!");
19 18
20 unsafe {
21 Dbgmcu::enable_all();
22 }
23
24 let p = embassy_stm32::init(Default::default()); 19 let p = embassy_stm32::init(Default::default());
25 20
26 let config = Config::default(); 21 let config = Config::default();
diff --git a/examples/stm32f4/src/bin/usart_dma.rs b/examples/stm32f4/src/bin/usart_dma.rs
index bf50b8ad9..3cfa6219c 100644
--- a/examples/stm32f4/src/bin/usart_dma.rs
+++ b/examples/stm32f4/src/bin/usart_dma.rs
@@ -8,7 +8,6 @@
8mod example_common; 8mod example_common;
9use core::fmt::Write; 9use core::fmt::Write;
10use embassy::executor::Spawner; 10use embassy::executor::Spawner;
11use embassy_stm32::dbgmcu::Dbgmcu;
12use embassy_stm32::dma::NoDma; 11use embassy_stm32::dma::NoDma;
13use embassy_stm32::usart::{Config, Uart}; 12use embassy_stm32::usart::{Config, Uart};
14use embassy_stm32::Peripherals; 13use embassy_stm32::Peripherals;
@@ -20,10 +19,6 @@ use heapless::String;
20async fn main(_spawner: Spawner, p: Peripherals) { 19async fn main(_spawner: Spawner, p: Peripherals) {
21 info!("Hello World!"); 20 info!("Hello World!");
22 21
23 unsafe {
24 Dbgmcu::enable_all();
25 }
26
27 let config = Config::default(); 22 let config = Config::default();
28 let mut usart = Uart::new(p.USART3, p.PD9, p.PD8, p.DMA1_CH3, NoDma, config); 23 let mut usart = Uart::new(p.USART3, p.PD9, p.PD8, p.DMA1_CH3, NoDma, config);
29 24
diff --git a/examples/stm32h7/src/bin/blinky.rs b/examples/stm32h7/src/bin/blinky.rs
index 09b34eacb..3784fba84 100644
--- a/examples/stm32h7/src/bin/blinky.rs
+++ b/examples/stm32h7/src/bin/blinky.rs
@@ -8,7 +8,6 @@
8mod example_common; 8mod example_common;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy::time::{Duration, Timer}; 10use embassy::time::{Duration, Timer};
11use embassy_stm32::dbgmcu::Dbgmcu;
12use embassy_stm32::gpio::{Level, Output, Speed}; 11use embassy_stm32::gpio::{Level, Output, Speed};
13use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
14use embedded_hal::digital::v2::OutputPin; 13use embedded_hal::digital::v2::OutputPin;
@@ -18,8 +17,6 @@ use example_common::*;
18async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
19 info!("Hello World!"); 18 info!("Hello World!");
20 19
21 unsafe { Dbgmcu::enable_all() };
22
23 let mut led = Output::new(p.PB14, Level::High, Speed::Low); 20 let mut led = Output::new(p.PB14, Level::High, Speed::Low);
24 21
25 loop { 22 loop {
diff --git a/examples/stm32h7/src/bin/button_exti.rs b/examples/stm32h7/src/bin/button_exti.rs
index ee43fa7d9..49c23ca3b 100644
--- a/examples/stm32h7/src/bin/button_exti.rs
+++ b/examples/stm32h7/src/bin/button_exti.rs
@@ -7,7 +7,6 @@
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy_stm32::dbgmcu::Dbgmcu;
11use embassy_stm32::exti::ExtiInput; 10use embassy_stm32::exti::ExtiInput;
12use embassy_stm32::gpio::{Input, Pull}; 11use embassy_stm32::gpio::{Input, Pull};
13use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
@@ -18,10 +17,6 @@ use example_common::*;
18async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
19 info!("Hello World!"); 18 info!("Hello World!");
20 19
21 unsafe {
22 Dbgmcu::enable_all();
23 }
24
25 let button = Input::new(p.PC13, Pull::Down); 20 let button = Input::new(p.PC13, Pull::Down);
26 let mut button = ExtiInput::new(button, p.EXTI13); 21 let mut button = ExtiInput::new(button, p.EXTI13);
27 22
diff --git a/examples/stm32h7/src/bin/dac.rs b/examples/stm32h7/src/bin/dac.rs
index 8816f63c2..e4c3a7312 100644
--- a/examples/stm32h7/src/bin/dac.rs
+++ b/examples/stm32h7/src/bin/dac.rs
@@ -19,10 +19,6 @@ fn main() -> ! {
19 19
20 let p = embassy_stm32::init(config()); 20 let p = embassy_stm32::init(config());
21 21
22 unsafe {
23 Dbgmcu::enable_all();
24 }
25
26 let mut dac = Dac::new(p.DAC1, p.PA4, NoPin); 22 let mut dac = Dac::new(p.DAC1, p.PA4, NoPin);
27 23
28 loop { 24 loop {
@@ -33,7 +29,6 @@ fn main() -> ! {
33 } 29 }
34} 30}
35 31
36use embassy_stm32::dbgmcu::Dbgmcu;
37use micromath::F32Ext; 32use micromath::F32Ext;
38 33
39fn to_sine_wave(v: u8) -> u8 { 34fn to_sine_wave(v: u8) -> u8 {
diff --git a/examples/stm32h7/src/bin/eth.rs b/examples/stm32h7/src/bin/eth.rs
index e8d13876a..4a9f261c2 100644
--- a/examples/stm32h7/src/bin/eth.rs
+++ b/examples/stm32h7/src/bin/eth.rs
@@ -19,7 +19,6 @@ use embassy_macros::interrupt_take;
19use embassy_net::{ 19use embassy_net::{
20 Config as NetConfig, Ipv4Address, Ipv4Cidr, StackResources, StaticConfigurator, TcpSocket, 20 Config as NetConfig, Ipv4Address, Ipv4Cidr, StackResources, StaticConfigurator, TcpSocket,
21}; 21};
22use embassy_stm32::dbgmcu::Dbgmcu;
23use embassy_stm32::eth::lan8742a::LAN8742A; 22use embassy_stm32::eth::lan8742a::LAN8742A;
24use embassy_stm32::eth::{Ethernet, State}; 23use embassy_stm32::eth::{Ethernet, State};
25use embassy_stm32::rng::Random; 24use embassy_stm32::rng::Random;
@@ -96,10 +95,6 @@ fn main() -> ! {
96 95
97 info!("Setup RCC..."); 96 info!("Setup RCC...");
98 97
99 unsafe {
100 Dbgmcu::enable_all();
101 }
102
103 let p = embassy_stm32::init(config()); 98 let p = embassy_stm32::init(config());
104 99
105 let rng = Random::new(p.RNG); 100 let rng = Random::new(p.RNG);
diff --git a/examples/stm32h7/src/bin/spi.rs b/examples/stm32h7/src/bin/spi.rs
index 047b65849..5514b0d3d 100644
--- a/examples/stm32h7/src/bin/spi.rs
+++ b/examples/stm32h7/src/bin/spi.rs
@@ -17,7 +17,6 @@ use example_common::*;
17 17
18use core::str::from_utf8; 18use core::str::from_utf8;
19use cortex_m_rt::entry; 19use cortex_m_rt::entry;
20use embassy_stm32::dbgmcu::Dbgmcu;
21use embassy_stm32::peripherals::SPI3; 20use embassy_stm32::peripherals::SPI3;
22use embassy_stm32::time::U32Ext; 21use embassy_stm32::time::U32Ext;
23use heapless::String; 22use heapless::String;
@@ -43,10 +42,6 @@ static EXECUTOR: Forever<Executor> = Forever::new();
43fn main() -> ! { 42fn main() -> ! {
44 info!("Hello World!"); 43 info!("Hello World!");
45 44
46 unsafe {
47 Dbgmcu::enable_all();
48 }
49
50 let p = embassy_stm32::init(config()); 45 let p = embassy_stm32::init(config());
51 46
52 let spi = spi::Spi::new( 47 let spi = spi::Spi::new(
diff --git a/examples/stm32h7/src/bin/spi_dma.rs b/examples/stm32h7/src/bin/spi_dma.rs
index f11b7eb45..ea1605903 100644
--- a/examples/stm32h7/src/bin/spi_dma.rs
+++ b/examples/stm32h7/src/bin/spi_dma.rs
@@ -16,7 +16,6 @@ use example_common::*;
16 16
17use core::str::from_utf8; 17use core::str::from_utf8;
18use cortex_m_rt::entry; 18use cortex_m_rt::entry;
19use embassy_stm32::dbgmcu::Dbgmcu;
20use embassy_stm32::peripherals::{DMA1_CH3, DMA1_CH4, SPI3}; 19use embassy_stm32::peripherals::{DMA1_CH3, DMA1_CH4, SPI3};
21use embassy_stm32::spi; 20use embassy_stm32::spi;
22use heapless::String; 21use heapless::String;
@@ -39,10 +38,6 @@ static EXECUTOR: Forever<Executor> = Forever::new();
39fn main() -> ! { 38fn main() -> ! {
40 info!("Hello World!"); 39 info!("Hello World!");
41 40
42 unsafe {
43 Dbgmcu::enable_all();
44 }
45
46 let p = embassy_stm32::init(config()); 41 let p = embassy_stm32::init(config());
47 42
48 let spi = spi::Spi::new( 43 let spi = spi::Spi::new(
diff --git a/examples/stm32h7/src/bin/usart.rs b/examples/stm32h7/src/bin/usart.rs
index a3fcc6d3f..10bf7813d 100644
--- a/examples/stm32h7/src/bin/usart.rs
+++ b/examples/stm32h7/src/bin/usart.rs
@@ -14,7 +14,6 @@ use embassy_stm32::usart::{Config, Uart};
14use example_common::*; 14use example_common::*;
15 15
16use cortex_m_rt::entry; 16use cortex_m_rt::entry;
17use embassy_stm32::dbgmcu::Dbgmcu;
18 17
19#[embassy::task] 18#[embassy::task]
20async fn main_task() { 19async fn main_task() {
@@ -39,10 +38,6 @@ static EXECUTOR: Forever<Executor> = Forever::new();
39fn main() -> ! { 38fn main() -> ! {
40 info!("Hello World!"); 39 info!("Hello World!");
41 40
42 unsafe {
43 Dbgmcu::enable_all();
44 }
45
46 let executor = EXECUTOR.put(Executor::new()); 41 let executor = EXECUTOR.put(Executor::new());
47 42
48 executor.run(|spawner| { 43 executor.run(|spawner| {
diff --git a/examples/stm32h7/src/bin/usart_dma.rs b/examples/stm32h7/src/bin/usart_dma.rs
index 3f70a82b0..eb71a72cf 100644
--- a/examples/stm32h7/src/bin/usart_dma.rs
+++ b/examples/stm32h7/src/bin/usart_dma.rs
@@ -9,7 +9,6 @@ mod example_common;
9use core::fmt::Write; 9use core::fmt::Write;
10use embassy::executor::Executor; 10use embassy::executor::Executor;
11use embassy::util::Forever; 11use embassy::util::Forever;
12use embassy_stm32::dbgmcu::Dbgmcu;
13use embassy_stm32::dma::NoDma; 12use embassy_stm32::dma::NoDma;
14use embassy_stm32::usart::{Config, Uart}; 13use embassy_stm32::usart::{Config, Uart};
15use embassy_traits::uart::Write as _Write; 14use embassy_traits::uart::Write as _Write;
@@ -41,10 +40,6 @@ static EXECUTOR: Forever<Executor> = Forever::new();
41fn main() -> ! { 40fn main() -> ! {
42 info!("Hello World!"); 41 info!("Hello World!");
43 42
44 unsafe {
45 Dbgmcu::enable_all();
46 }
47
48 let executor = EXECUTOR.put(Executor::new()); 43 let executor = EXECUTOR.put(Executor::new());
49 44
50 executor.run(|spawner| { 45 executor.run(|spawner| {
diff --git a/examples/stm32l0/Cargo.toml b/examples/stm32l0/Cargo.toml
index 9b3166154..07b033c1e 100644
--- a/examples/stm32l0/Cargo.toml
+++ b/examples/stm32l0/Cargo.toml
@@ -27,7 +27,7 @@ defmt = "0.2.0"
27defmt-rtt = "0.2.0" 27defmt-rtt = "0.2.0"
28 28
29cortex-m = "0.7.1" 29cortex-m = "0.7.1"
30cortex-m-rt = "0.6.14" 30cortex-m-rt = "0.7.0"
31embedded-hal = { version = "0.2.4" } 31embedded-hal = { version = "0.2.4" }
32panic-probe = { version = "0.2.0", features= ["print-defmt"] } 32panic-probe = { version = "0.2.0", features= ["print-defmt"] }
33futures = { version = "0.3.8", default-features = false, features = ["async-await"] } 33futures = { version = "0.3.8", default-features = false, features = ["async-await"] }
diff --git a/examples/stm32l0/src/bin/blinky.rs b/examples/stm32l0/src/bin/blinky.rs
index 29f5d7c74..d8513bc7c 100644
--- a/examples/stm32l0/src/bin/blinky.rs
+++ b/examples/stm32l0/src/bin/blinky.rs
@@ -10,17 +10,14 @@ mod example_common;
10use embassy::executor::Spawner; 10use embassy::executor::Spawner;
11use embassy::time::{Duration, Timer}; 11use embassy::time::{Duration, Timer};
12use embassy_stm32::gpio::{Level, Output, Speed}; 12use embassy_stm32::gpio::{Level, Output, Speed};
13use embassy_stm32::rcc::Rcc;
14use embassy_stm32::Peripherals; 13use embassy_stm32::Peripherals;
15use embedded_hal::digital::v2::OutputPin; 14use embedded_hal::digital::v2::OutputPin;
16use example_common::*; 15use example_common::*;
17 16
18#[embassy::main] 17#[embassy::main]
19async fn main(_spawner: Spawner, mut p: Peripherals) { 18async fn main(_spawner: Spawner, p: Peripherals) {
20 info!("Hello World!"); 19 info!("Hello World!");
21 20
22 Rcc::new(p.RCC).enable_debug_wfe(&mut p.DBGMCU, true);
23
24 let mut led = Output::new(p.PB5, Level::High, Speed::Low); 21 let mut led = Output::new(p.PB5, Level::High, Speed::Low);
25 22
26 loop { 23 loop {
diff --git a/examples/stm32l0/src/bin/button.rs b/examples/stm32l0/src/bin/button.rs
index e37d3f26d..a7e82e37e 100644
--- a/examples/stm32l0/src/bin/button.rs
+++ b/examples/stm32l0/src/bin/button.rs
@@ -6,22 +6,16 @@
6 6
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9use embassy_stm32::{ 9use embassy::executor::Spawner;
10 gpio::{Input, Level, Output, Pull, Speed}, 10use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
11 rcc::*, 11use embassy_stm32::Peripherals;
12};
13use embedded_hal::digital::v2::{InputPin, OutputPin}; 12use embedded_hal::digital::v2::{InputPin, OutputPin};
14use example_common::*; 13use example_common::*;
15 14
16use cortex_m_rt::entry; 15#[embassy::main]
17 16async fn main(_spawner: Spawner, p: Peripherals) {
18#[entry]
19fn main() -> ! {
20 info!("Hello World!"); 17 info!("Hello World!");
21 18
22 let mut p = embassy_stm32::init(Default::default());
23 Rcc::new(p.RCC).enable_debug_wfe(&mut p.DBGMCU, true);
24
25 let button = Input::new(p.PB2, Pull::Up); 19 let button = Input::new(p.PB2, Pull::Up);
26 let mut led1 = Output::new(p.PA5, Level::High, Speed::Low); 20 let mut led1 = Output::new(p.PA5, Level::High, Speed::Low);
27 let mut led2 = Output::new(p.PB5, Level::High, Speed::Low); 21 let mut led2 = Output::new(p.PB5, Level::High, Speed::Low);
diff --git a/examples/stm32l0/src/bin/button_exti.rs b/examples/stm32l0/src/bin/button_exti.rs
index 40e25b088..13ce99907 100644
--- a/examples/stm32l0/src/bin/button_exti.rs
+++ b/examples/stm32l0/src/bin/button_exti.rs
@@ -17,7 +17,6 @@ use example_common::*;
17#[embassy::main] 17#[embassy::main]
18async fn main(_spawner: Spawner, mut p: Peripherals) { 18async fn main(_spawner: Spawner, mut p: Peripherals) {
19 let mut rcc = rcc::Rcc::new(p.RCC); 19 let mut rcc = rcc::Rcc::new(p.RCC);
20 rcc.enable_debug_wfe(&mut p.DBGMCU, true);
21 // Enables SYSCFG 20 // Enables SYSCFG
22 let _ = rcc.enable_hsi48(&mut p.SYSCFG, p.CRS); 21 let _ = rcc.enable_hsi48(&mut p.SYSCFG, p.CRS);
23 22
diff --git a/examples/stm32l0/src/bin/spi.rs b/examples/stm32l0/src/bin/spi.rs
index 43ffb5539..83c4fe322 100644
--- a/examples/stm32l0/src/bin/spi.rs
+++ b/examples/stm32l0/src/bin/spi.rs
@@ -7,25 +7,21 @@
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9 9
10use embassy::executor::Spawner;
10use embassy_stm32::gpio::{Level, Output, Speed}; 11use embassy_stm32::gpio::{Level, Output, Speed};
11use embedded_hal::digital::v2::OutputPin; 12use embedded_hal::digital::v2::OutputPin;
12use example_common::*; 13use example_common::*;
13 14
14use cortex_m_rt::entry;
15use embassy_stm32::dma::NoDma; 15use embassy_stm32::dma::NoDma;
16use embassy_stm32::rcc;
17use embassy_stm32::spi::{Config, Spi}; 16use embassy_stm32::spi::{Config, Spi};
18use embassy_stm32::time::Hertz; 17use embassy_stm32::time::Hertz;
18use embassy_stm32::Peripherals;
19use embedded_hal::blocking::spi::Transfer; 19use embedded_hal::blocking::spi::Transfer;
20 20
21#[entry] 21#[embassy::main]
22fn main() -> ! { 22async fn main(_spawner: Spawner, p: Peripherals) {
23 info!("Hello World, folks!"); 23 info!("Hello World, folks!");
24 24
25 let mut p = embassy_stm32::init(Default::default());
26 let mut rcc = rcc::Rcc::new(p.RCC);
27 rcc.enable_debug_wfe(&mut p.DBGMCU, true);
28
29 let mut spi = Spi::new( 25 let mut spi = Spi::new(
30 p.SPI1, 26 p.SPI1,
31 p.PB3, 27 p.PB3,
@@ -40,7 +36,7 @@ fn main() -> ! {
40 let mut cs = Output::new(p.PA15, Level::High, Speed::VeryHigh); 36 let mut cs = Output::new(p.PA15, Level::High, Speed::VeryHigh);
41 37
42 loop { 38 loop {
43 let mut buf = [0x0A; 4]; 39 let mut buf = [0x0Au8; 4];
44 unwrap!(cs.set_low()); 40 unwrap!(cs.set_low());
45 unwrap!(spi.transfer(&mut buf)); 41 unwrap!(spi.transfer(&mut buf));
46 unwrap!(cs.set_high()); 42 unwrap!(cs.set_high());
diff --git a/examples/stm32l0/src/bin/usart_dma.rs b/examples/stm32l0/src/bin/usart_dma.rs
index 39a605174..2b2424e97 100644
--- a/examples/stm32l0/src/bin/usart_dma.rs
+++ b/examples/stm32l0/src/bin/usart_dma.rs
@@ -11,14 +11,11 @@ use example_common::*;
11 11
12use embassy::executor::Spawner; 12use embassy::executor::Spawner;
13use embassy_stm32::usart::{Config, Uart}; 13use embassy_stm32::usart::{Config, Uart};
14use embassy_stm32::{rcc, Peripherals}; 14use embassy_stm32::Peripherals;
15use embassy_traits::uart::{Read, Write}; 15use embassy_traits::uart::{Read, Write};
16 16
17#[embassy::main] 17#[embassy::main]
18async fn main(_spawner: Spawner, mut p: Peripherals) { 18async fn main(_spawner: Spawner, p: Peripherals) {
19 let mut rcc = rcc::Rcc::new(p.RCC);
20 rcc.enable_debug_wfe(&mut p.DBGMCU, true);
21
22 let mut usart = Uart::new( 19 let mut usart = Uart::new(
23 p.USART1, 20 p.USART1,
24 p.PB7, 21 p.PB7,
diff --git a/examples/stm32l0/src/bin/usart_irq.rs b/examples/stm32l0/src/bin/usart_irq.rs
index 5c79d0671..66a00f41b 100644
--- a/examples/stm32l0/src/bin/usart_irq.rs
+++ b/examples/stm32l0/src/bin/usart_irq.rs
@@ -15,13 +15,10 @@ use embassy::io::{AsyncBufReadExt, AsyncWriteExt};
15use embassy_stm32::dma::NoDma; 15use embassy_stm32::dma::NoDma;
16use embassy_stm32::interrupt; 16use embassy_stm32::interrupt;
17use embassy_stm32::usart::{BufferedUart, Config, State, Uart}; 17use embassy_stm32::usart::{BufferedUart, Config, State, Uart};
18use embassy_stm32::{rcc, Peripherals}; 18use embassy_stm32::Peripherals;
19 19
20#[embassy::main] 20#[embassy::main]
21async fn main(_spawner: Spawner, mut p: Peripherals) { 21async fn main(_spawner: Spawner, p: Peripherals) {
22 let mut rcc = rcc::Rcc::new(p.RCC);
23 rcc.enable_debug_wfe(&mut p.DBGMCU, true);
24
25 static mut TX_BUFFER: [u8; 8] = [0; 8]; 22 static mut TX_BUFFER: [u8; 8] = [0; 8];
26 static mut RX_BUFFER: [u8; 256] = [0; 256]; 23 static mut RX_BUFFER: [u8; 256] = [0; 256];
27 24
diff --git a/examples/stm32l4/Cargo.toml b/examples/stm32l4/Cargo.toml
index 3f6b34679..3fa6fa467 100644
--- a/examples/stm32l4/Cargo.toml
+++ b/examples/stm32l4/Cargo.toml
@@ -26,7 +26,7 @@ defmt = "0.2.0"
26defmt-rtt = "0.2.0" 26defmt-rtt = "0.2.0"
27 27
28cortex-m = "0.7.1" 28cortex-m = "0.7.1"
29cortex-m-rt = "0.6.14" 29cortex-m-rt = "0.7.0"
30embedded-hal = { version = "0.2.4" } 30embedded-hal = { version = "0.2.4" }
31panic-probe = { version = "0.2.0", features= ["print-defmt"] } 31panic-probe = { version = "0.2.0", features= ["print-defmt"] }
32futures = { version = "0.3.8", default-features = false, features = ["async-await"] } 32futures = { version = "0.3.8", default-features = false, features = ["async-await"] }
diff --git a/examples/stm32l4/src/bin/adc.rs b/examples/stm32l4/src/bin/adc.rs
index c778d9c3f..14b4e5ecf 100644
--- a/examples/stm32l4/src/bin/adc.rs
+++ b/examples/stm32l4/src/bin/adc.rs
@@ -9,7 +9,6 @@ mod example_common;
9 9
10use embassy::time::Delay; 10use embassy::time::Delay;
11use embassy_stm32::adc::{Adc, Resolution}; 11use embassy_stm32::adc::{Adc, Resolution};
12use embassy_stm32::dbgmcu::Dbgmcu;
13use embassy_stm32::pac; 12use embassy_stm32::pac;
14use example_common::*; 13use example_common::*;
15 14
@@ -18,8 +17,6 @@ fn main() -> ! {
18 info!("Hello World!"); 17 info!("Hello World!");
19 18
20 unsafe { 19 unsafe {
21 Dbgmcu::enable_all();
22
23 pac::RCC.ccipr().modify(|w| { 20 pac::RCC.ccipr().modify(|w| {
24 w.set_adcsel(0b11); 21 w.set_adcsel(0b11);
25 }); 22 });
diff --git a/examples/stm32l4/src/bin/blinky.rs b/examples/stm32l4/src/bin/blinky.rs
index c9ba587e4..9c983bc6c 100644
--- a/examples/stm32l4/src/bin/blinky.rs
+++ b/examples/stm32l4/src/bin/blinky.rs
@@ -8,7 +8,6 @@
8mod example_common; 8mod example_common;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy::time::{Duration, Timer}; 10use embassy::time::{Duration, Timer};
11use embassy_stm32::dbgmcu::Dbgmcu;
12use embassy_stm32::gpio::{Level, Output, Speed}; 11use embassy_stm32::gpio::{Level, Output, Speed};
13use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
14use embedded_hal::digital::v2::OutputPin; 13use embedded_hal::digital::v2::OutputPin;
@@ -18,10 +17,6 @@ use example_common::*;
18async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
19 info!("Hello World!"); 18 info!("Hello World!");
20 19
21 unsafe {
22 Dbgmcu::enable_all();
23 }
24
25 let mut led = Output::new(p.PB14, Level::High, Speed::Low); 20 let mut led = Output::new(p.PB14, Level::High, Speed::Low);
26 21
27 loop { 22 loop {
diff --git a/examples/stm32l4/src/bin/button.rs b/examples/stm32l4/src/bin/button.rs
index 883a0d6c8..be6e2d2f3 100644
--- a/examples/stm32l4/src/bin/button.rs
+++ b/examples/stm32l4/src/bin/button.rs
@@ -6,7 +6,6 @@
6 6
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9use embassy_stm32::dbgmcu::Dbgmcu;
10use embassy_stm32::gpio::{Input, Pull}; 9use embassy_stm32::gpio::{Input, Pull};
11use embedded_hal::digital::v2::InputPin; 10use embedded_hal::digital::v2::InputPin;
12use example_common::*; 11use example_common::*;
@@ -15,10 +14,6 @@ use example_common::*;
15fn main() -> ! { 14fn main() -> ! {
16 info!("Hello World!"); 15 info!("Hello World!");
17 16
18 unsafe {
19 Dbgmcu::enable_all();
20 }
21
22 let p = embassy_stm32::init(Default::default()); 17 let p = embassy_stm32::init(Default::default());
23 18
24 let button = Input::new(p.PC13, Pull::Up); 19 let button = Input::new(p.PC13, Pull::Up);
diff --git a/examples/stm32l4/src/bin/button_exti.rs b/examples/stm32l4/src/bin/button_exti.rs
index 8a78b2589..c55d6408c 100644
--- a/examples/stm32l4/src/bin/button_exti.rs
+++ b/examples/stm32l4/src/bin/button_exti.rs
@@ -7,7 +7,6 @@
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy_stm32::dbgmcu::Dbgmcu;
11use embassy_stm32::exti::ExtiInput; 10use embassy_stm32::exti::ExtiInput;
12use embassy_stm32::gpio::{Input, Pull}; 11use embassy_stm32::gpio::{Input, Pull};
13use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
@@ -18,10 +17,6 @@ use example_common::*;
18async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
19 info!("Hello World!"); 18 info!("Hello World!");
20 19
21 unsafe {
22 Dbgmcu::enable_all();
23 }
24
25 let button = Input::new(p.PC13, Pull::Up); 20 let button = Input::new(p.PC13, Pull::Up);
26 let mut button = ExtiInput::new(button, p.EXTI13); 21 let mut button = ExtiInput::new(button, p.EXTI13);
27 22
diff --git a/examples/stm32l4/src/bin/dac.rs b/examples/stm32l4/src/bin/dac.rs
index c479f86c7..e03fbc955 100644
--- a/examples/stm32l4/src/bin/dac.rs
+++ b/examples/stm32l4/src/bin/dac.rs
@@ -8,7 +8,6 @@
8mod example_common; 8mod example_common;
9 9
10use embassy_stm32::dac::{Channel, Dac, Value}; 10use embassy_stm32::dac::{Channel, Dac, Value};
11use embassy_stm32::dbgmcu::Dbgmcu;
12use embassy_stm32::gpio::NoPin; 11use embassy_stm32::gpio::NoPin;
13use embassy_stm32::pac; 12use embassy_stm32::pac;
14use example_common::*; 13use example_common::*;
@@ -18,8 +17,6 @@ fn main() -> ! {
18 info!("Hello World!"); 17 info!("Hello World!");
19 18
20 unsafe { 19 unsafe {
21 Dbgmcu::enable_all();
22
23 pac::RCC.apb1enr1().modify(|w| { 20 pac::RCC.apb1enr1().modify(|w| {
24 w.set_dac1en(true); 21 w.set_dac1en(true);
25 }); 22 });
diff --git a/examples/stm32l4/src/bin/spi.rs b/examples/stm32l4/src/bin/spi.rs
index ef6e2fcad..376537e91 100644
--- a/examples/stm32l4/src/bin/spi.rs
+++ b/examples/stm32l4/src/bin/spi.rs
@@ -7,7 +7,6 @@
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9 9
10use embassy_stm32::dbgmcu::Dbgmcu;
11use embassy_stm32::dma::NoDma; 10use embassy_stm32::dma::NoDma;
12use embassy_stm32::gpio::{Level, Output, Speed}; 11use embassy_stm32::gpio::{Level, Output, Speed};
13use embassy_stm32::spi::{Config, Spi}; 12use embassy_stm32::spi::{Config, Spi};
@@ -20,10 +19,6 @@ use example_common::*;
20fn main() -> ! { 19fn main() -> ! {
21 info!("Hello World!"); 20 info!("Hello World!");
22 21
23 unsafe {
24 Dbgmcu::enable_all();
25 }
26
27 let p = embassy_stm32::init(Default::default()); 22 let p = embassy_stm32::init(Default::default());
28 23
29 let mut spi = Spi::new( 24 let mut spi = Spi::new(
diff --git a/examples/stm32l4/src/bin/spi_dma.rs b/examples/stm32l4/src/bin/spi_dma.rs
index d626a1290..75c19a3bf 100644
--- a/examples/stm32l4/src/bin/spi_dma.rs
+++ b/examples/stm32l4/src/bin/spi_dma.rs
@@ -8,7 +8,6 @@
8mod example_common; 8mod example_common;
9 9
10use embassy::executor::Spawner; 10use embassy::executor::Spawner;
11use embassy_stm32::dbgmcu::Dbgmcu;
12use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; 11use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
13use embassy_stm32::spi::{Config, Spi}; 12use embassy_stm32::spi::{Config, Spi};
14use embassy_stm32::time::Hertz; 13use embassy_stm32::time::Hertz;
@@ -21,10 +20,6 @@ use example_common::*;
21async fn main(_spawner: Spawner, p: Peripherals) { 20async fn main(_spawner: Spawner, p: Peripherals) {
22 info!("Hello World!"); 21 info!("Hello World!");
23 22
24 unsafe {
25 Dbgmcu::enable_all();
26 }
27
28 let mut spi = Spi::new( 23 let mut spi = Spi::new(
29 p.SPI3, 24 p.SPI3,
30 p.PC10, 25 p.PC10,
diff --git a/examples/stm32l4/src/bin/usart.rs b/examples/stm32l4/src/bin/usart.rs
index 95ac84b23..09b62f680 100644
--- a/examples/stm32l4/src/bin/usart.rs
+++ b/examples/stm32l4/src/bin/usart.rs
@@ -7,7 +7,6 @@
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9 9
10use embassy_stm32::dbgmcu::Dbgmcu;
11use embassy_stm32::dma::NoDma; 10use embassy_stm32::dma::NoDma;
12use embassy_stm32::usart::{Config, Uart}; 11use embassy_stm32::usart::{Config, Uart};
13use embedded_hal::blocking::serial::Write; 12use embedded_hal::blocking::serial::Write;
@@ -17,10 +16,6 @@ use example_common::*;
17fn main() -> ! { 16fn main() -> ! {
18 info!("Hello World!"); 17 info!("Hello World!");
19 18
20 unsafe {
21 Dbgmcu::enable_all();
22 }
23
24 let p = embassy_stm32::init(Default::default()); 19 let p = embassy_stm32::init(Default::default());
25 20
26 let config = Config::default(); 21 let config = Config::default();
diff --git a/examples/stm32l4/src/bin/usart_dma.rs b/examples/stm32l4/src/bin/usart_dma.rs
index f74a0e06b..d307dc13c 100644
--- a/examples/stm32l4/src/bin/usart_dma.rs
+++ b/examples/stm32l4/src/bin/usart_dma.rs
@@ -8,7 +8,6 @@
8mod example_common; 8mod example_common;
9use core::fmt::Write; 9use core::fmt::Write;
10use embassy::executor::Spawner; 10use embassy::executor::Spawner;
11use embassy_stm32::dbgmcu::Dbgmcu;
12use embassy_stm32::dma::NoDma; 11use embassy_stm32::dma::NoDma;
13use embassy_stm32::usart::{Config, Uart}; 12use embassy_stm32::usart::{Config, Uart};
14use embassy_stm32::Peripherals; 13use embassy_stm32::Peripherals;
@@ -20,10 +19,6 @@ use heapless::String;
20async fn main(_spawner: Spawner, p: Peripherals) { 19async fn main(_spawner: Spawner, p: Peripherals) {
21 info!("Hello World!"); 20 info!("Hello World!");
22 21
23 unsafe {
24 Dbgmcu::enable_all();
25 }
26
27 let config = Config::default(); 22 let config = Config::default();
28 let mut usart = Uart::new(p.UART4, p.PA1, p.PA0, p.DMA1_CH3, NoDma, config); 23 let mut usart = Uart::new(p.UART4, p.PA1, p.PA0, p.DMA1_CH3, NoDma, config);
29 24
diff --git a/examples/stm32wb55/src/bin/blinky.rs b/examples/stm32wb55/src/bin/blinky.rs
index 2deaf5f55..ea5f872d7 100644
--- a/examples/stm32wb55/src/bin/blinky.rs
+++ b/examples/stm32wb55/src/bin/blinky.rs
@@ -8,7 +8,6 @@
8mod example_common; 8mod example_common;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy::time::{Duration, Timer}; 10use embassy::time::{Duration, Timer};
11use embassy_stm32::dbgmcu::Dbgmcu;
12use embassy_stm32::gpio::{Level, Output, Speed}; 11use embassy_stm32::gpio::{Level, Output, Speed};
13use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
14use embedded_hal::digital::v2::OutputPin; 13use embedded_hal::digital::v2::OutputPin;
@@ -18,8 +17,6 @@ use example_common::*;
18async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
19 info!("Hello World!"); 18 info!("Hello World!");
20 19
21 unsafe { Dbgmcu::enable_all() };
22
23 let mut led = Output::new(p.PB0, Level::High, Speed::Low); 20 let mut led = Output::new(p.PB0, Level::High, Speed::Low);
24 21
25 loop { 22 loop {
diff --git a/examples/stm32wb55/src/bin/button_exti.rs b/examples/stm32wb55/src/bin/button_exti.rs
new file mode 100644
index 000000000..1c070833d
--- /dev/null
+++ b/examples/stm32wb55/src/bin/button_exti.rs
@@ -0,0 +1,31 @@
1#![no_std]
2#![no_main]
3#![feature(trait_alias)]
4#![feature(type_alias_impl_trait)]
5#![allow(incomplete_features)]
6
7#[path = "../example_common.rs"]
8mod example_common;
9use embassy::executor::Spawner;
10use embassy_stm32::exti::ExtiInput;
11use embassy_stm32::gpio::{Input, Pull};
12use embassy_stm32::Peripherals;
13use embassy_traits::gpio::{WaitForFallingEdge, WaitForRisingEdge};
14use example_common::*;
15
16#[embassy::main]
17async fn main(_spawner: Spawner, p: Peripherals) {
18 info!("Hello World!");
19
20 let button = Input::new(p.PC4, Pull::Up);
21 let mut button = ExtiInput::new(button, p.EXTI4);
22
23 info!("Press the USER button...");
24
25 loop {
26 button.wait_for_falling_edge().await;
27 info!("Pressed!");
28 button.wait_for_rising_edge().await;
29 info!("Released!");
30 }
31}
diff --git a/examples/stm32wl55/src/bin/blinky.rs b/examples/stm32wl55/src/bin/blinky.rs
index b5e5ffcf9..b13b66e0e 100644
--- a/examples/stm32wl55/src/bin/blinky.rs
+++ b/examples/stm32wl55/src/bin/blinky.rs
@@ -8,7 +8,6 @@
8mod example_common; 8mod example_common;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy::time::{Duration, Timer}; 10use embassy::time::{Duration, Timer};
11use embassy_stm32::dbgmcu::Dbgmcu;
12use embassy_stm32::gpio::{Level, Output, Speed}; 11use embassy_stm32::gpio::{Level, Output, Speed};
13use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
14use embedded_hal::digital::v2::OutputPin; 13use embedded_hal::digital::v2::OutputPin;
@@ -18,8 +17,6 @@ use example_common::*;
18async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
19 info!("Hello World!"); 18 info!("Hello World!");
20 19
21 unsafe { Dbgmcu::enable_all() };
22
23 let mut led = Output::new(p.PB15, Level::High, Speed::Low); 20 let mut led = Output::new(p.PB15, Level::High, Speed::Low);
24 21
25 loop { 22 loop {
diff --git a/examples/stm32wl55/src/bin/button.rs b/examples/stm32wl55/src/bin/button.rs
index 84e1f599f..ca1625a64 100644
--- a/examples/stm32wl55/src/bin/button.rs
+++ b/examples/stm32wl55/src/bin/button.rs
@@ -6,10 +6,7 @@
6 6
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9use embassy_stm32::{ 9use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
10 dbgmcu::Dbgmcu,
11 gpio::{Input, Level, Output, Pull, Speed},
12};
13use embedded_hal::digital::v2::{InputPin, OutputPin}; 10use embedded_hal::digital::v2::{InputPin, OutputPin};
14use example_common::*; 11use example_common::*;
15 12
@@ -21,8 +18,6 @@ fn main() -> ! {
21 18
22 let p = embassy_stm32::init(Default::default()); 19 let p = embassy_stm32::init(Default::default());
23 20
24 unsafe { Dbgmcu::enable_all() };
25
26 let button = Input::new(p.PA0, Pull::Up); 21 let button = Input::new(p.PA0, Pull::Up);
27 let mut led1 = Output::new(p.PB15, Level::High, Speed::Low); 22 let mut led1 = Output::new(p.PB15, Level::High, Speed::Low);
28 let mut led2 = Output::new(p.PB9, Level::High, Speed::Low); 23 let mut led2 = Output::new(p.PB9, Level::High, Speed::Low);
diff --git a/examples/stm32wl55/src/bin/button_exti.rs b/examples/stm32wl55/src/bin/button_exti.rs
index 2f6e55115..b34e54574 100644
--- a/examples/stm32wl55/src/bin/button_exti.rs
+++ b/examples/stm32wl55/src/bin/button_exti.rs
@@ -7,7 +7,6 @@
7#[path = "../example_common.rs"] 7#[path = "../example_common.rs"]
8mod example_common; 8mod example_common;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy_stm32::dbgmcu::Dbgmcu;
11use embassy_stm32::exti::ExtiInput; 10use embassy_stm32::exti::ExtiInput;
12use embassy_stm32::gpio::{Input, Pull}; 11use embassy_stm32::gpio::{Input, Pull};
13use embassy_stm32::Peripherals; 12use embassy_stm32::Peripherals;
@@ -18,8 +17,6 @@ use example_common::*;
18async fn main(_spawner: Spawner, p: Peripherals) { 17async fn main(_spawner: Spawner, p: Peripherals) {
19 info!("Hello World!"); 18 info!("Hello World!");
20 19
21 unsafe { Dbgmcu::enable_all() };
22
23 let button = Input::new(p.PA0, Pull::Up); 20 let button = Input::new(p.PA0, Pull::Up);
24 let mut button = ExtiInput::new(button, p.EXTI0); 21 let mut button = ExtiInput::new(button, p.EXTI0);
25 22