pub struct Adc<'d, T: Instance> { /* private fields */ }
Expand description
Analog to Digital driver.
Implementations§
Source§impl<'d, T: Instance> Adc<'d, T>
impl<'d, T: Instance> Adc<'d, T>
pub fn new(adc: impl Peripheral<P = T> + 'd) -> Self
pub fn enable_vrefint(&self) -> VrefInt
pub fn enable_temperature(&self) -> Temperature
pub fn enable_vbat(&self) -> Vbat
Sourcepub fn set_sample_time(&mut self, sample_time: SampleTime)
pub fn set_sample_time(&mut self, sample_time: SampleTime)
Set the ADC sample time.
Sourcepub fn sample_time(&self) -> SampleTime
pub fn sample_time(&self) -> SampleTime
Get the ADC sample time.
Sourcepub fn set_resolution(&mut self, resolution: Resolution)
pub fn set_resolution(&mut self, resolution: Resolution)
Set the ADC resolution.
Sourcepub fn blocking_read(&mut self, channel: &mut impl AdcChannel<T>) -> u16
pub fn blocking_read(&mut self, channel: &mut impl AdcChannel<T>) -> u16
Read an ADC channel.
Sourcepub async fn read(
&mut self,
rx_dma: &mut impl RxDma<T>,
sequence: impl ExactSizeIterator<Item = (&mut AnyAdcChannel<T>, SampleTime)>,
readings: &mut [u16],
)
pub async fn read( &mut self, rx_dma: &mut impl RxDma<T>, sequence: impl ExactSizeIterator<Item = (&mut AnyAdcChannel<T>, SampleTime)>, readings: &mut [u16], )
Read one or multiple ADC channels using DMA.
sequence
iterator and readings
must have the same length.
Example
ⓘ
use embassy_stm32::adc::{Adc, AdcChannel}
let mut adc = Adc::new(p.ADC1);
let mut adc_pin0 = p.PA0.degrade_adc();
let mut adc_pin1 = p.PA1.degrade_adc();
let mut measurements = [0u16; 2];
adc.read_async(
p.DMA1_CH2,
[
(&mut *adc_pin0, SampleTime::CYCLES160_5),
(&mut *adc_pin1, SampleTime::CYCLES160_5),
]
.into_iter(),
&mut measurements,
)
.await;
defmt::info!("measurements: {}", measurements);
pub fn set_oversampling_shift(&mut self, shift: u8)
pub fn set_oversampling_ratio(&mut self, ratio: u8)
pub fn oversampling_enable(&mut self, enable: bool)
Auto Trait Implementations§
impl<'d, T> Freeze for Adc<'d, T>where
T: Freeze,
impl<'d, T> RefUnwindSafe for Adc<'d, T>where
T: RefUnwindSafe,
impl<'d, T> Send for Adc<'d, T>where
T: Send,
impl<'d, T> Sync for Adc<'d, T>where
T: Sync,
impl<'d, T> Unpin for Adc<'d, T>where
T: Unpin,
impl<'d, T> !UnwindSafe for Adc<'d, T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more