fix(temp): correctly read actual VRef
This commit is contained in:
parent
a5c99f4037
commit
630b2b996e
1 changed files with 3 additions and 8 deletions
|
@ -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
|
||||
);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue