Struct embassy_stm32::gpio::Output

source ·
pub struct Output<'d, T: Pin> { /* private fields */ }
Expand description

GPIO output driver.

Note that pins will return to their floating state when Output is dropped. If pins should retain their state indefinitely, either keep ownership of the Output, or pass it to core::mem::forget.

Implementations§

source§

impl<'d, T: Pin> Output<'d, T>

source

pub fn new( pin: impl Peripheral<P = T> + 'd, initial_output: Level, speed: Speed ) -> Self

Create GPIO output driver for a Pin with the provided Level and Speed configuration.

source

pub fn degrade(self) -> Output<'d, AnyPin>

Type-erase (degrade) this pin into an AnyPin.

This converts pin singletons (PA5, PB6, …), which are all different types, into the same type. It is useful for creating arrays of pins, or avoiding generics.

source

pub fn set_high(&mut self)

Set the output as high.

source

pub fn set_low(&mut self)

Set the output as low.

source

pub fn set_level(&mut self, level: Level)

Set the output level.

source

pub fn is_set_high(&self) -> bool

Is the output pin set as high?

source

pub fn is_set_low(&self) -> bool

Is the output pin set as low?

source

pub fn get_output_level(&self) -> Level

What level output is set to

source

pub fn toggle(&mut self)

Toggle pin output

Trait Implementations§

source§

impl<'d, T: Pin> ErrorType for Output<'d, T>

§

type Error = Infallible

Error type
source§

impl<'d, T: Pin> OutputPin for Output<'d, T>

§

type Error = Infallible

Error type
source§

fn set_high(&mut self) -> Result<(), Self::Error>

Drives the pin high Read more
source§

fn set_low(&mut self) -> Result<(), Self::Error>

Drives the pin low Read more
source§

fn set_state(&mut self, state: PinState) -> Result<(), Self::Error>

Drives the pin high or low depending on the provided value Read more
source§

impl<'d, T: Pin> OutputPin for Output<'d, T>

source§

fn set_high(&mut self) -> Result<(), Self::Error>

Drives the pin high. Read more
source§

fn set_low(&mut self) -> Result<(), Self::Error>

Drives the pin low. Read more
source§

fn set_state(&mut self, state: PinState) -> Result<(), Self::Error>

Drives the pin high or low depending on the provided value. Read more
source§

impl<'d, T: Pin> StatefulOutputPin for Output<'d, T>

source§

fn is_set_low(&self) -> Result<bool, Self::Error>

Is the output pin set as low?

source§

fn is_set_high(&self) -> Result<bool, Self::Error>

Is the pin in drive high mode? Read more
source§

impl<'d, T: Pin> StatefulOutputPin for Output<'d, T>

source§

fn is_set_low(&mut self) -> Result<bool, Self::Error>

Is the output pin set as low?

source§

fn is_set_high(&mut self) -> Result<bool, Self::Error>

Is the pin in drive high mode? Read more
source§

fn toggle(&mut self) -> Result<(), Self::Error>

Toggle pin output.
source§

impl<'d, T: Pin> ToggleableOutputPin for Output<'d, T>

§

type Error = Infallible

Error type
source§

fn toggle(&mut self) -> Result<(), Self::Error>

Toggle pin output.

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

§

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

§

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>,

§

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.