diff options
| author | Daniel Nilsson <[email protected]> | 2025-11-14 10:10:42 +0100 |
|---|---|---|
| committer | Daniel Nilsson <[email protected]> | 2025-11-14 10:10:42 +0100 |
| commit | 20c75352c388546e8d105d03837c06f32d28ffbc (patch) | |
| tree | ea43d7d32fa9868fe5635b68df51abbfdc4dfe98 /embassy-stm32/src/adc | |
| parent | 31908a26e0ef597511af25b7ffb50f7c64e85560 (diff) | |
adding support for stm32l4
Diffstat (limited to 'embassy-stm32/src/adc')
| -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); |
