diff options
| -rw-r--r-- | embassy-stm32/src/adc/v3.rs | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/embassy-stm32/src/adc/v3.rs b/embassy-stm32/src/adc/v3.rs index ce02168ba..93219168d 100644 --- a/embassy-stm32/src/adc/v3.rs +++ b/embassy-stm32/src/adc/v3.rs | |||
| @@ -560,6 +560,10 @@ impl<'d> Adc<'d, peripherals::ADC2> { | |||
| 560 | pac::ADC12_COMMON.ccr().modify(|reg| { | 560 | pac::ADC12_COMMON.ccr().modify(|reg| { |
| 561 | reg.set_vbaten(true); | 561 | reg.set_vbaten(true); |
| 562 | }); | 562 | }); |
| 563 | } else if #[cfg(stm32l4)] { | ||
| 564 | pac::ADC123_COMMON.ccr().modify(|reg| { | ||
| 565 | reg.set_ch18sel(true); | ||
| 566 | }); | ||
| 563 | } else { | 567 | } else { |
| 564 | pac::ADC12_COMMON.ccr().modify(|reg| { | 568 | pac::ADC12_COMMON.ccr().modify(|reg| { |
| 565 | reg.set_ch18sel(true); | 569 | reg.set_ch18sel(true); |
| @@ -572,18 +576,18 @@ impl<'d> Adc<'d, peripherals::ADC2> { | |||
| 572 | 576 | ||
| 573 | pub fn disable_vbat(&self) { | 577 | pub fn disable_vbat(&self) { |
| 574 | cfg_if! { | 578 | cfg_if! { |
| 575 | if #[cfg(any(adc_g0, adc_u0))] { | 579 | if #[cfg(any(adc_h5, adc_h7rs))] { |
| 576 | pac::ADC2.ccr().modify(|reg| { | ||
| 577 | reg.set_vbaten(false); | ||
| 578 | }); | ||
| 579 | } else if #[cfg(any(adc_h5, adc_h7rs))] { | ||
| 580 | pac::ADC12_COMMON.ccr().modify(|reg| { | 580 | pac::ADC12_COMMON.ccr().modify(|reg| { |
| 581 | reg.set_vbaten(false); | 581 | reg.set_vbaten(false); |
| 582 | }); | 582 | }); |
| 583 | } else if #[cfg(stm32l4)] { | ||
| 584 | pac::ADC123_COMMON.ccr().modify(|reg| { | ||
| 585 | reg.set_ch18sel(false); | ||
| 586 | }); | ||
| 583 | } else { | 587 | } else { |
| 584 | pac::ADC12_COMMON.ccr().modify(|reg| { | 588 | pac::ADC12_COMMON.ccr().modify(|reg| { |
| 585 | reg.set_ch18sel(false); | 589 | reg.set_ch18sel(false); |
| 586 | }); | 590 | }); |
| 587 | } | 591 | } |
| 588 | } | 592 | } |
| 589 | } | 593 | } |
| @@ -601,7 +605,7 @@ impl<'d> Adc<'d, peripherals::ADC2> { | |||
| 601 | impl<'d> Adc<'d, peripherals::ADC1> { | 605 | impl<'d> Adc<'d, peripherals::ADC1> { |
| 602 | pub fn enable_vrefint(&self) -> VrefInt { | 606 | pub fn enable_vrefint(&self) -> VrefInt { |
| 603 | cfg_if! { | 607 | cfg_if! { |
| 604 | if #[cfg(not(any(adc_g0, adc_u0, stm32wb)))] { | 608 | if #[cfg(any(adc_h5, adc_h7rs))] { |
| 605 | pac::ADC12_COMMON.ccr().modify(|reg| { | 609 | pac::ADC12_COMMON.ccr().modify(|reg| { |
| 606 | reg.set_vrefen(true); | 610 | reg.set_vrefen(true); |
| 607 | }); | 611 | }); |
| @@ -609,6 +613,10 @@ impl<'d> Adc<'d, peripherals::ADC1> { | |||
| 609 | pac::ADC1.ccr().modify(|reg| { | 613 | pac::ADC1.ccr().modify(|reg| { |
| 610 | reg.set_vrefen(true); | 614 | reg.set_vrefen(true); |
| 611 | }); | 615 | }); |
| 616 | } else if #[cfg(stm32l4)] { | ||
| 617 | pac::ADC123_COMMON.ccr().modify(|reg| { | ||
| 618 | reg.set_vrefen(true); | ||
| 619 | }); | ||
| 612 | } else { | 620 | } else { |
| 613 | pac::ADC1_COMMON.ccr().modify(|reg| { | 621 | pac::ADC1_COMMON.ccr().modify(|reg| { |
| 614 | reg.set_vrefen(true); | 622 | reg.set_vrefen(true); |
| @@ -637,8 +645,14 @@ impl<'d> Adc<'d, peripherals::ADC1> { | |||
| 637 | }); | 645 | }); |
| 638 | 646 | ||
| 639 | Temperature {} | 647 | Temperature {} |
| 640 | } else if #[cfg(any(stm32wb))] { | 648 | } else if #[cfg(stm32wb)] { |
| 641 | todo!(); | 649 | todo(); |
| 650 | } else if #[cfg(stm32l4)] { | ||
| 651 | pac::ADC123_COMMON.ccr().modify(|reg| { | ||
| 652 | reg.set_ch17sel(true); | ||
| 653 | }); | ||
| 654 | |||
| 655 | Temperature {} | ||
| 642 | } else { | 656 | } else { |
| 643 | pac::ADC12_COMMON.ccr().modify(|reg| { | 657 | pac::ADC12_COMMON.ccr().modify(|reg| { |
| 644 | reg.set_ch17sel(true); | 658 | reg.set_ch17sel(true); |
