embassy-stm32

Crates

git

Versions

stm32f733ie

Flavors

Adc

Struct Adc 

Source
pub struct Adc<'d, T: Instance> { /* private fields */ }
Expand description

Analog to Digital driver.

Implementations§

Source§

impl<'d, T> Adc<'d, T>
where T: Instance,

Source

pub fn new(adc: Peri<'d, T>) -> Self

Source

pub fn new_with_config(adc: Peri<'d, T>, config: AdcConfig) -> Self

Source

pub fn enable_vrefint(&self) -> VrefInt

Enables internal voltage reference and returns VrefInt, which can be used in [Adc::read_internal()] to perform conversion.

Source

pub fn enable_temperature(&self) -> Temperature

Enables internal temperature sensor and returns Temperature, which can be used in [Adc::read_internal()] to perform conversion.

On STM32F42 and STM32F43 this can not be used together with Vbat. If both are enabled, temperature sensor will return vbat value.

Source

pub fn enable_vbat(&self) -> Vbat

Enables vbat input and returns Vbat, which can be used in [Adc::read_internal()] to perform conversion.

Source§

impl<'d, T: Instance> Adc<'d, T>

Source

pub fn blocking_read( &mut self, channel: &mut impl AdcChannel<T>, sample_time: SampleTime, ) -> u16

Read an ADC pin.

Source

pub fn into_ring_buffered<'a>( self, dma: Peri<'a, impl RxDma<T>>, dma_buf: &'a mut [u16], sequence: impl ExactSizeIterator<Item = (AnyAdcChannel<T>, SampleTime)>, mode: RegularConversionMode, ) -> RingBufferedAdc<'a, T>

Configures the ADC to use a DMA ring buffer for continuous data acquisition.

Use the [read] method to retrieve measurements from the DMA ring buffer. The read buffer should be exactly half the size of dma_buf. When using triggered mode, it is recommended to configure dma_buf as a double buffer so that one half can be read while the other half is being filled by the DMA, preventing data loss. The trigger period of the ADC effectively defines the period at which the buffer should be read.

If continous conversion mode is selected, the provided dma_buf must be large enough to prevent DMA buffer overruns. Its length should be a multiple of the number of ADC channels being measured. For example, if 3 channels are measured and you want to store 40 samples per channel, the buffer length should be 3 * 40 = 120.

§Parameters
  • dma: The DMA peripheral used to transfer ADC data into the buffer.
  • dma_buf: The buffer where DMA stores ADC samples.
  • regular_sequence: Sequence of channels and sample times for regular ADC conversions.
  • regular_conversion_mode: Mode for regular conversions (continuous or triggered).
§Returns

A RingBufferedAdc<'a, T> instance configured for continuous DMA-based sampling.

Trait Implementations§

Source§

impl<'d, T: Instance> Drop for Adc<'d, T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.