aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-stm32/CHANGELOG.md2
-rw-r--r--embassy-stm32/src/usb/usb.rs11
2 files changed, 12 insertions, 1 deletions
diff --git a/embassy-stm32/CHANGELOG.md b/embassy-stm32/CHANGELOG.md
index c8ae7a357..dfb8ca066 100644
--- a/embassy-stm32/CHANGELOG.md
+++ b/embassy-stm32/CHANGELOG.md
@@ -8,6 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8<!-- next-header --> 8<!-- next-header -->
9## Unreleased - ReleaseDate 9## Unreleased - ReleaseDate
10 10
11- fix: Fixed STM32H5 builds requiring time feature
12
11## 0.4.0 - 2025-08-26 13## 0.4.0 - 2025-08-26
12 14
13- feat: stm32/sai: make NODIV independent of MCKDIV 15- feat: stm32/sai: make NODIV independent of MCKDIV
diff --git a/embassy-stm32/src/usb/usb.rs b/embassy-stm32/src/usb/usb.rs
index 92c1601cc..54596aeae 100644
--- a/embassy-stm32/src/usb/usb.rs
+++ b/embassy-stm32/src/usb/usb.rs
@@ -912,7 +912,16 @@ impl<'d, T: Instance> driver::EndpointOut for Endpoint<'d, T, Out> {
912 // Software should ensure that a small delay is included before accessing the SRAM contents. This delay should be 912 // Software should ensure that a small delay is included before accessing the SRAM contents. This delay should be
913 // 800 ns in Full Speed mode and 6.4 μs in Low Speed mode. 913 // 800 ns in Full Speed mode and 6.4 μs in Low Speed mode.
914 #[cfg(stm32h5)] 914 #[cfg(stm32h5)]
915 embassy_time::block_for(embassy_time::Duration::from_nanos(800)); 915 {
916 #[cfg(feature = "time")]
917 embassy_time::block_for(embassy_time::Duration::from_nanos(800));
918 #[cfg(not(feature = "time"))]
919 {
920 let freq = unsafe { crate::rcc::get_freqs() }.sys.to_hertz().unwrap().0 as u64;
921 let cycles = freq * 800 / 1_000_000;
922 cortex_m::asm::delay(cycles as u32);
923 }
924 }
916 925
917 RX_COMPLETE[index].store(false, Ordering::Relaxed); 926 RX_COMPLETE[index].store(false, Ordering::Relaxed);
918 927