aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32n6/src/bin/blinky.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/stm32n6/src/bin/blinky.rs')
-rw-r--r--examples/stm32n6/src/bin/blinky.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/examples/stm32n6/src/bin/blinky.rs b/examples/stm32n6/src/bin/blinky.rs
new file mode 100644
index 000000000..a8baf16af
--- /dev/null
+++ b/examples/stm32n6/src/bin/blinky.rs
@@ -0,0 +1,42 @@
1#![no_std]
2#![no_main]
3
4use defmt::*;
5use embassy_executor::Spawner;
6use embassy_stm32::exti::{self, ExtiInput};
7use embassy_stm32::gpio::{Level, Output, Pull, Speed};
8use embassy_stm32::{bind_interrupts, interrupt};
9use embassy_time::Timer;
10use {defmt_rtt as _, panic_probe as _};
11
12bind_interrupts!(
13 pub struct Irqs{
14 EXTI13 => exti::InterruptHandler<interrupt::typelevel::EXTI13>;
15});
16
17#[embassy_executor::task]
18async fn button_task(mut p: ExtiInput<'static>) {
19 loop {
20 p.wait_for_any_edge().await;
21 info!("button pressed!");
22 }
23}
24
25#[embassy_executor::main]
26async fn main(spawner: Spawner) {
27 let p = embassy_stm32::init(Default::default());
28 info!("Hello World!");
29
30 let mut led = Output::new(p.PG10, Level::High, Speed::Low);
31 let button = ExtiInput::new(p.PC13, p.EXTI13, Pull::Up, Irqs);
32
33 spawner.spawn(button_task(button).unwrap());
34
35 loop {
36 led.set_high();
37 Timer::after_millis(500).await;
38
39 led.set_low();
40 Timer::after_millis(500).await;
41 }
42}