diff --git a/embassy-stm32/src/exti/mod.rs b/embassy-stm32/src/exti/mod.rs
index bb9082f2e..164cdba33 100644
--- a/embassy-stm32/src/exti/mod.rs
+++ b/embassy-stm32/src/exti/mod.rs
@@ -35,6 +35,7 @@ macro_rules! foreach_exti_irq {
 }
 
 #[cfg_attr(exti_v1, path = "v1.rs")]
+#[cfg_attr(exti_h7, path = "v1.rs")]
 #[cfg_attr(exti_wb55, path = "v2.rs")]
 mod _version;
 
diff --git a/examples/stm32h7/src/bin/button_exti.rs b/examples/stm32h7/src/bin/button_exti.rs
new file mode 100644
index 000000000..ee43fa7d9
--- /dev/null
+++ b/examples/stm32h7/src/bin/button_exti.rs
@@ -0,0 +1,36 @@
+#![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.PC13, Pull::Down);
+    let mut button = ExtiInput::new(button, p.EXTI13);
+
+    info!("Press the USER button...");
+
+    loop {
+        button.wait_for_rising_edge().await;
+        info!("Pressed!");
+        button.wait_for_falling_edge().await;
+        info!("Released!");
+    }
+}
diff --git a/stm32-data b/stm32-data
index 79ab92a38..75a76596c 160000
--- a/stm32-data
+++ b/stm32-data
@@ -1 +1 @@
-Subproject commit 79ab92a38d1cbb47dda2f6f8556fe1abc9a14f3a
+Subproject commit 75a76596c37f07cbbdaa3a689c1776297063b651