#![no_std] #![no_main] use core::mem::MaybeUninit; use defmt::*; use embassy_executor::Spawner; use embassy_stm32::gpio::{Level, Output, Speed}; use embassy_stm32::SharedData; use embassy_time::Timer; use {defmt_rtt as _, panic_probe as _}; #[link_section = ".shared_data"] static SHARED_DATA: MaybeUninit = MaybeUninit::uninit(); #[embassy_executor::main] async fn main(_spawner: Spawner) { let p = embassy_stm32::init_primary(Default::default(), &SHARED_DATA); info!("Hello World!"); let mut led = Output::new(p.PB15, Level::High, Speed::Low); loop { info!("high"); led.set_high(); Timer::after_millis(500).await; info!("low"); led.set_low(); Timer::after_millis(500).await; } }