From 20c75352c388546e8d105d03837c06f32d28ffbc Mon Sep 17 00:00:00 2001 From: Daniel Nilsson Date: Fri, 14 Nov 2025 10:10:42 +0100 Subject: adding support for stm32l4 --- embassy-stm32/src/adc/v3.rs | 32 +++++++++++++++++++++++--------- 1 file 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> { pac::ADC12_COMMON.ccr().modify(|reg| { reg.set_vbaten(true); }); + } else if #[cfg(stm32l4)] { + pac::ADC123_COMMON.ccr().modify(|reg| { + reg.set_ch18sel(true); + }); } else { pac::ADC12_COMMON.ccr().modify(|reg| { reg.set_ch18sel(true); @@ -572,18 +576,18 @@ impl<'d> Adc<'d, peripherals::ADC2> { pub fn disable_vbat(&self) { cfg_if! { - if #[cfg(any(adc_g0, adc_u0))] { - pac::ADC2.ccr().modify(|reg| { - reg.set_vbaten(false); - }); - } else if #[cfg(any(adc_h5, adc_h7rs))] { + if #[cfg(any(adc_h5, adc_h7rs))] { pac::ADC12_COMMON.ccr().modify(|reg| { reg.set_vbaten(false); }); + } else if #[cfg(stm32l4)] { + pac::ADC123_COMMON.ccr().modify(|reg| { + reg.set_ch18sel(false); + }); } else { pac::ADC12_COMMON.ccr().modify(|reg| { reg.set_ch18sel(false); - }); + }); } } } @@ -601,7 +605,7 @@ impl<'d> Adc<'d, peripherals::ADC2> { impl<'d> Adc<'d, peripherals::ADC1> { pub fn enable_vrefint(&self) -> VrefInt { cfg_if! { - if #[cfg(not(any(adc_g0, adc_u0, stm32wb)))] { + if #[cfg(any(adc_h5, adc_h7rs))] { pac::ADC12_COMMON.ccr().modify(|reg| { reg.set_vrefen(true); }); @@ -609,6 +613,10 @@ impl<'d> Adc<'d, peripherals::ADC1> { pac::ADC1.ccr().modify(|reg| { reg.set_vrefen(true); }); + } else if #[cfg(stm32l4)] { + pac::ADC123_COMMON.ccr().modify(|reg| { + reg.set_vrefen(true); + }); } else { pac::ADC1_COMMON.ccr().modify(|reg| { reg.set_vrefen(true); @@ -637,8 +645,14 @@ impl<'d> Adc<'d, peripherals::ADC1> { }); Temperature {} - } else if #[cfg(any(stm32wb))] { - todo!(); + } else if #[cfg(stm32wb)] { + todo(); + } else if #[cfg(stm32l4)] { + pac::ADC123_COMMON.ccr().modify(|reg| { + reg.set_ch17sel(true); + }); + + Temperature {} } else { pac::ADC12_COMMON.ccr().modify(|reg| { reg.set_ch17sel(true); -- cgit