From 4df63f5379206ebb5d09d5017e19498f0a1713af Mon Sep 17 00:00:00 2001 From: Ulf Lilleengen Date: Tue, 17 Aug 2021 14:25:18 +0200 Subject: Add per-core EXTI support * Generate a core index put into the PAC for the peripherals to use as index into registers. * Add EXTI v2 which uses CORE_INDEX to index exti registers --- examples/stm32wl55/src/bin/button_exti.rs | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 examples/stm32wl55/src/bin/button_exti.rs (limited to 'examples') diff --git a/examples/stm32wl55/src/bin/button_exti.rs b/examples/stm32wl55/src/bin/button_exti.rs new file mode 100644 index 000000000..2f6e55115 --- /dev/null +++ b/examples/stm32wl55/src/bin/button_exti.rs @@ -0,0 +1,34 @@ +#![no_std] +#![no_main] +#![feature(trait_alias)] +#![feature(type_alias_impl_trait)] +#![allow(incomplete_features)] + +#[path = "../example_common.rs"] +mod example_common; +use embassy::executor::Spawner; +use embassy_stm32::dbgmcu::Dbgmcu; +use embassy_stm32::exti::ExtiInput; +use embassy_stm32::gpio::{Input, Pull}; +use embassy_stm32::Peripherals; +use embassy_traits::gpio::{WaitForFallingEdge, WaitForRisingEdge}; +use example_common::*; + +#[embassy::main] +async fn main(_spawner: Spawner, p: Peripherals) { + info!("Hello World!"); + + unsafe { Dbgmcu::enable_all() }; + + let button = Input::new(p.PA0, Pull::Up); + let mut button = ExtiInput::new(button, p.EXTI0); + + info!("Press the USER button..."); + + loop { + button.wait_for_falling_edge().await; + info!("Pressed!"); + button.wait_for_rising_edge().await; + info!("Released!"); + } +} -- cgit