aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/adc
diff options
context:
space:
mode:
authorDaniel Nilsson <[email protected]>2025-11-14 10:10:42 +0100
committerDaniel Nilsson <[email protected]>2025-11-14 10:10:42 +0100
commit20c75352c388546e8d105d03837c06f32d28ffbc (patch)
treeea43d7d32fa9868fe5635b68df51abbfdc4dfe98 /embassy-stm32/src/adc
parent31908a26e0ef597511af25b7ffb50f7c64e85560 (diff)
adding support for stm32l4
Diffstat (limited to 'embassy-stm32/src/adc')
-rw-r--r--embassy-stm32/src/adc/v3.rs32
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> {
601impl<'d> Adc<'d, peripherals::ADC1> { 605impl<'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);