diff options
| -rw-r--r-- | embassy-stm32/CHANGELOG.md | 1 | ||||
| -rw-r--r-- | embassy-stm32/src/dma/gpdma/mod.rs | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/embassy-stm32/CHANGELOG.md b/embassy-stm32/CHANGELOG.md index 2b9e0a89a..ac228141e 100644 --- a/embassy-stm32/CHANGELOG.md +++ b/embassy-stm32/CHANGELOG.md | |||
| @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||
| 7 | 7 | ||
| 8 | ## Unreleased - ReleaseDate | 8 | ## Unreleased - ReleaseDate |
| 9 | 9 | ||
| 10 | - fix: stm32: GPDMA driver reset ignored during channel configuration | ||
| 10 | - fix: stm32: SPI driver SSOE and SSM manegment, add `nss_output_disable` to SPI Config | 11 | - fix: stm32: SPI driver SSOE and SSM manegment, add `nss_output_disable` to SPI Config |
| 11 | - change: stm32: use typelevel timer type to allow dma for 32 bit timers | 12 | - change: stm32: use typelevel timer type to allow dma for 32 bit timers |
| 12 | - fix: fix incorrect handling of split interrupts in timer driver | 13 | - fix: fix incorrect handling of split interrupts in timer driver |
diff --git a/embassy-stm32/src/dma/gpdma/mod.rs b/embassy-stm32/src/dma/gpdma/mod.rs index bfd0570f8..51c107cb4 100644 --- a/embassy-stm32/src/dma/gpdma/mod.rs +++ b/embassy-stm32/src/dma/gpdma/mod.rs | |||
| @@ -238,6 +238,11 @@ impl AnyChannel { | |||
| 238 | // "Preceding reads and writes cannot be moved past subsequent writes." | 238 | // "Preceding reads and writes cannot be moved past subsequent writes." |
| 239 | fence(Ordering::SeqCst); | 239 | fence(Ordering::SeqCst); |
| 240 | 240 | ||
| 241 | if ch.cr().read().en() { | ||
| 242 | ch.cr().modify(|w| w.set_susp(true)); | ||
| 243 | while !ch.sr().read().suspf() {} | ||
| 244 | } | ||
| 245 | |||
| 241 | ch.cr().write(|w| w.set_reset(true)); | 246 | ch.cr().write(|w| w.set_reset(true)); |
| 242 | ch.fcr().write(|w| { | 247 | ch.fcr().write(|w| { |
| 243 | // Clear all irqs | 248 | // Clear all irqs |
