[][src]Module stm32f0xx_hal::adc

API for the Analog to Digital converter

Currently implements oneshot conversion with variable sampling times. Also references for the internal temperature sense, voltage reference and battery sense are provided.

Example

use stm32f0xx_hal as hal;

use crate::hal::pac;
use crate::hal::prelude::*;
use crate::hal::adc::Adc;

cortex_m::interrupt::free(|cs| {
    let mut p = pac::Peripherals::take().unwrap();
    let mut rcc = p.RCC.configure().freeze(&mut p.FLASH);

    let gpioa = p.GPIOA.split(&mut rcc);

    let mut led = gpioa.pa1.into_push_pull_pull_output(cs);
    let mut an_in = gpioa.pa0.into_analog(cs);

    let mut delay = Delay::new(cp.SYST, &rcc);

    let mut adc = Adc::new(p.ADC, &mut rcc);

    loop {
        let val: u16 = adc.read(&mut an_in).unwrap();
        if val < ((1 << 8) - 1) {
            led.set_low();
        } else {
            led.set_high();
        }
        delay.delay_ms(50_u16);
    }
});

Structs

Adc

Analog to Digital converter interface

StoredConfig

A stored ADC config, can be restored by using the Adc::restore_cfg method

VBat

Battery reference voltage (ADC Channel 18)

VRef

Internal voltage reference (ADC Channel 17)

VTemp

Internal temperature sensor (ADC Channel 16)

Enums

AdcAlign

ADC Result Alignment

AdcPrecision

ADC Sampling Precision

AdcSampleTime

ADC Sampling time