From 630b2b996ecf11b386471fb859b63dfa69eaf423 Mon Sep 17 00:00:00 2001 From: cscherr Date: Wed, 30 Apr 2025 15:03:44 +0200 Subject: [PATCH] fix(temp): correctly read actual VRef --- examples/temperature.rs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/examples/temperature.rs b/examples/temperature.rs index a31fb62..8203f65 100755 --- a/examples/temperature.rs +++ b/examples/temperature.rs @@ -19,18 +19,13 @@ fn main() -> ! { let cp = cortex_m::Peripherals::take().unwrap(); let mut rcc = dp.RCC.freeze(Config::hsi16()); - let mut adc = dp.ADC.constrain(&mut rcc); + let mut adc: Adc<_> = dp.ADC.constrain(&mut rcc); let mut delay = cp.SYST.delay(rcc.clocks); - // manual says i need to calibrate but then boom - adc.set_sample_time(hal::adc::SampleTime::T_1_5); - delay.delay_ms(50_u16); - adc.calibrate().unwrap(); - delay.delay_ms(5000_u16); - // NOTE: TSEN bit must be enabled for reading the temperature VTemp.enable(&mut adc); + VRef.enable(&mut adc); // reference temperatures from the chips readonly memory // [Source](https://www.st.com/resource/en/datasheet/stm32l053r8.pdf), @@ -53,7 +48,7 @@ fn main() -> ! { let vref_actual: u16 = adc.read(&mut VRef).unwrap(); let vref_factor = vref_cal as f32 / vref_actual as f32; debug!( - "vref real={} register={} => factor={}", + "vref actual={} calibration={} => factor={}", vref_actual, vref_cal, vref_factor );