diff options
| author | xoviat <[email protected]> | 2025-11-20 22:19:22 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-11-20 22:19:22 +0000 |
| commit | 96a026c73bad2ebb8dfc78e88c9690611bf2cb97 (patch) | |
| tree | c38404a055dcd2173b35be67e83dcf52f8d7686a /embassy-stm32/src | |
| parent | de1e5f731839587e4743e91ce965415720380fb4 (diff) | |
| parent | 759d5d511a309db020eb6ee30a63b1d7925f99bb (diff) | |
Merge pull request #4927 from leftger/fix/stm32wba-adc4
stm32: Fixed ADC4 enable() for WBA
Diffstat (limited to 'embassy-stm32/src')
| -rw-r--r-- | embassy-stm32/src/adc/adc4.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/embassy-stm32/src/adc/adc4.rs b/embassy-stm32/src/adc/adc4.rs index 499fc2093..472eb46fd 100644 --- a/embassy-stm32/src/adc/adc4.rs +++ b/embassy-stm32/src/adc/adc4.rs | |||
| @@ -113,10 +113,26 @@ foreach_adc!( | |||
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | fn enable() { | 115 | fn enable() { |
| 116 | let cr_initial = ADC4::regs().cr().read(); | ||
| 117 | let isr_initial = ADC4::regs().isr().read(); | ||
| 118 | |||
| 119 | if cr_initial.aden() && isr_initial.adrdy() { | ||
| 120 | return; | ||
| 121 | } | ||
| 122 | |||
| 123 | if cr_initial.aden() || cr_initial.adstart() { | ||
| 124 | if cr_initial.adstart() { | ||
| 125 | ADC4::regs().cr().modify(|w| w.set_adstp(true)); | ||
| 126 | while ADC4::regs().cr().read().adstart() {} | ||
| 127 | } | ||
| 128 | |||
| 129 | ADC4::regs().cr().modify(|w| w.set_addis(true)); | ||
| 130 | while ADC4::regs().cr().read().aden() {} | ||
| 131 | } | ||
| 132 | |||
| 116 | ADC4::regs().isr().write(|w| w.set_adrdy(true)); | 133 | ADC4::regs().isr().write(|w| w.set_adrdy(true)); |
| 117 | ADC4::regs().cr().modify(|w| w.set_aden(true)); | 134 | ADC4::regs().cr().modify(|w| w.set_aden(true)); |
| 118 | while !ADC4::regs().isr().read().adrdy() {} | 135 | while !ADC4::regs().isr().read().adrdy() {} |
| 119 | ADC4::regs().isr().write(|w| w.set_adrdy(true)); | ||
| 120 | } | 136 | } |
| 121 | 137 | ||
| 122 | fn start() { | 138 | fn start() { |
