aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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