aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2022-11-21 23:58:28 +0000
committerGitHub <[email protected]>2022-11-21 23:58:28 +0000
commitb8f51c64964c3f1b02635a1a130fa022793cd3c9 (patch)
treef6ae329d47e3374cabe0172dcf77fe8896eba95e
parent15b4ed2c672a853cf9bb5cfb8aae323430de0c67 (diff)
parent551b54ddcbb104f881a3333215f4a828b33d029a (diff)
Merge #1057
1057: stm32g0: Fix ADC for channels above 14 r=Dirbaio a=jaxter184 using the CHSELR register in sequence mode does not support ADC channels above 14. Also, it seems like the sequencer itself wasn't being used anyway, so I turned it off (maybe the whole block from L72..L76 could be removed?) and used a bit shift. Co-authored-by: Jaxter Kim <[email protected]>
-rw-r--r--embassy-stm32/src/adc/v3.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/embassy-stm32/src/adc/v3.rs b/embassy-stm32/src/adc/v3.rs
index 8f81cb7a3..90aa7d3b9 100644
--- a/embassy-stm32/src/adc/v3.rs
+++ b/embassy-stm32/src/adc/v3.rs
@@ -71,7 +71,7 @@ impl<'d, T: Instance> Adc<'d, T> {
71 71
72 #[cfg(adc_g0)] 72 #[cfg(adc_g0)]
73 T::regs().cfgr1().modify(|reg| { 73 T::regs().cfgr1().modify(|reg| {
74 reg.set_chselrmod(true); 74 reg.set_chselrmod(false);
75 }); 75 });
76 } 76 }
77 77
@@ -200,7 +200,7 @@ impl<'d, T: Instance> Adc<'d, T> {
200 #[cfg(not(stm32g0))] 200 #[cfg(not(stm32g0))]
201 T::regs().sqr1().write(|reg| reg.set_sq(0, pin.channel())); 201 T::regs().sqr1().write(|reg| reg.set_sq(0, pin.channel()));
202 #[cfg(stm32g0)] 202 #[cfg(stm32g0)]
203 T::regs().chselr().write(|reg| reg.set_chsel(pin.channel() as u32)); 203 T::regs().chselr().write(|reg| reg.set_chsel(1 << pin.channel()));
204 204
205 // Some models are affected by an erratum: 205 // Some models are affected by an erratum:
206 // If we perform conversions slower than 1 kHz, the first read ADC value can be 206 // If we perform conversions slower than 1 kHz, the first read ADC value can be