aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxoviat <[email protected]>2025-11-03 16:27:11 -0600
committerxoviat <[email protected]>2025-11-03 16:27:11 -0600
commitafc412dd0be175b6d24daa255a018b07006c5d95 (patch)
tree3cd00f4a06a484d34e569dae053c5fd9fa72be32
parentefc47c8013e957bd7f8a669e2a7ef24d9eee0cee (diff)
fix
-rw-r--r--embassy-stm32/src/adc/ringbuffered.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/embassy-stm32/src/adc/ringbuffered.rs b/embassy-stm32/src/adc/ringbuffered.rs
index bea981fe2..931ebc2b7 100644
--- a/embassy-stm32/src/adc/ringbuffered.rs
+++ b/embassy-stm32/src/adc/ringbuffered.rs
@@ -265,10 +265,7 @@ impl<'d, T: Instance> RingBufferedAdc<'d, T> {
265 if !r.cr2().read().dma() { 265 if !r.cr2().read().dma() {
266 self.start()?; 266 self.start()?;
267 } 267 }
268 }
269 268
270 #[cfg(not(adc_v2))]
271 {
272 // Clear overrun flag if set. 269 // Clear overrun flag if set.
273 if r.sr().read().ovr() { 270 if r.sr().read().ovr() {
274 return self.stop(OverrunError); 271 return self.stop(OverrunError);
@@ -280,6 +277,14 @@ impl<'d, T: Instance> RingBufferedAdc<'d, T> {
280 } 277 }
281 } 278 }
282 279
280 #[cfg(not(adc_v2))]
281 {
282 // Start background receive if it was not already started
283 if !r.cr().read().adstart() {
284 self.start_continuous_sampling();
285 }
286 }
287
283 self.ring_buf.read_exact(measurements).await.map_err(|_| OverrunError) 288 self.ring_buf.read_exact(measurements).await.map_err(|_| OverrunError)
284 } 289 }
285 290