diff --git a/embassy-stm32l0/src/exti.rs b/embassy-stm32l0/src/exti.rs index ca699a08..7958bd94 100644 --- a/embassy-stm32l0/src/exti.rs +++ b/embassy-stm32l0/src/exti.rs @@ -3,7 +3,7 @@ use core::mem; use core::pin::Pin; use embassy::interrupt::Interrupt; -use embassy::traits::gpio::{WaitForFallingEdge, WaitForRisingEdge}; +use embassy::traits::gpio::{WaitForAnyEdge, WaitForFallingEdge, WaitForRisingEdge}; use embassy::util::InterruptFuture; use crate::hal::{ @@ -92,6 +92,16 @@ impl + 'static, I: Interrupt + 'static> WaitF } } +impl + 'static, I: Interrupt + 'static> WaitForAnyEdge + for ExtiPin +{ + type Future<'a> = impl Future + 'a; + + fn wait_for_any_edge<'a>(self: Pin<&'a mut Self>) -> Self::Future<'a> { + self.wait_for_edge(TriggerEdge::Both) + } +} + mod private { pub trait Sealed {} }