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>
Sourcepub fn new(
adc: impl Peripheral<P = T> + 'd,
sample_time: SampleTime,
resolution: Resolution,
) -> Self
pub fn new( adc: impl Peripheral<P = T> + 'd, sample_time: SampleTime, resolution: Resolution, ) -> Self
Create a new ADC driver.
Sourcepub fn enable_vrefint(&self) -> VrefInt
pub fn enable_vrefint(&self) -> VrefInt
Enable reading the voltage reference internal channel.
Sourcepub fn enable_temperature(&self) -> Temperature
pub fn enable_temperature(&self) -> Temperature
Enable reading the temperature internal channel.
Sourcepub fn set_sample_time_all_channels(&mut self, sample_time: SampleTime)
pub fn set_sample_time_all_channels(&mut self, sample_time: SampleTime)
Set the ADC sample time. Shall only be called when ADC is not converting.
Sourcepub fn set_resolution(&mut self, resolution: Resolution)
pub fn set_resolution(&mut self, resolution: Resolution)
Set the ADC resolution.
pub fn blocking_read(&mut self, channel: &mut impl AdcChannel<T>) -> u16
Sourcepub async fn read_in_hw_order(
&mut self,
rx_dma: &mut impl RxDma<T>,
hw_channel_selection: u32,
scandir: Scandir,
readings: &mut [u16],
)
pub async fn read_in_hw_order( &mut self, rx_dma: &mut impl RxDma<T>, hw_channel_selection: u32, scandir: Scandir, readings: &mut [u16], )
Read one or multiple ADC channels using DMA in hardware order.
Readings will be ordered based on hardware ADC channel number and scandir
setting.
Readings won’t be in the same order as in the set
!
In STM32C0, channels bigger than 14 cannot be read using sequencer, so you have to use either blocking reads or use the mechanism to read in HW order (CHSELRMOD=0). TODO(chudsaviet): externalize generic code and merge with read().
pub async fn read( &mut self, rx_dma: &mut impl RxDma<T>, channel_sequence: impl ExactSizeIterator<Item = &mut AnyAdcChannel<T>>, readings: &mut [u16], )
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