embassy-stm32

Crates

git

Versions

stm32g441cb

Flavors

embassy_stm32::opamp

Struct OpAmp

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

OpAmp driver.

Implementations§

Source§

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

Source

pub fn new(opamp: impl Peripheral<P = T> + 'd, speed: OpAmpSpeed) -> Self

Create a new driver instance.

Does not enable the opamp, but does set the speed mode on some families.

Source

pub fn buffer_ext( &mut self, in_pin: impl Peripheral<P = impl NonInvertingPin<T> + Pin>, out_pin: impl Peripheral<P = impl OutputPin<T> + Pin>, gain: OpAmpGain, ) -> OpAmpOutput<'_, T>

Configure the OpAmp as a buffer for the provided input pin, outputting to the provided output pin, and enable the opamp.

The input pin is configured for analogue mode but not consumed, so it may subsequently be used for ADC or comparator inputs.

The output pin is held within the returned OpAmpOutput struct, preventing it being used elsewhere. The OpAmpOutput can then be directly used as an ADC input. The opamp will be disabled when the OpAmpOutput is dropped.

Source

pub fn buffer_dac( &mut self, out_pin: impl Peripheral<P = impl OutputPin<T> + Pin>, ) -> OpAmpOutput<'_, T>

Configure the OpAmp as a buffer for the DAC it is connected to, outputting to the provided output pin, and enable the opamp.

The output pin is held within the returned OpAmpOutput struct, preventing it being used elsewhere. The OpAmpOutput can then be directly used as an ADC input. The opamp will be disabled when the OpAmpOutput is dropped.

Source

pub fn buffer_int( &mut self, pin: impl Peripheral<P = impl NonInvertingPin<T> + Pin>, gain: OpAmpGain, ) -> OpAmpInternalOutput<'_, T>

Configure the OpAmp as a buffer for the provided input pin, with the output only used internally, and enable the opamp.

The input pin is configured for analogue mode but not consumed, so it may be subsequently used for ADC or comparator inputs.

The returned OpAmpInternalOutput struct may be used as an ADC input. The opamp output will be disabled when it is dropped.

Auto Trait Implementations§

§

impl<'d, T> Freeze for OpAmp<'d, T>
where T: Freeze,

§

impl<'d, T> RefUnwindSafe for OpAmp<'d, T>
where T: RefUnwindSafe,

§

impl<'d, T> Send for OpAmp<'d, T>
where T: Send,

§

impl<'d, T> Sync for OpAmp<'d, T>
where T: Sync,

§

impl<'d, T> Unpin for OpAmp<'d, T>
where T: Unpin,

§

impl<'d, T> !UnwindSafe for OpAmp<'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.