Struct ParlIoFullDuplex

Source
pub struct ParlIoFullDuplex<'d, Dm>
where Dm: DriverMode,
{ pub tx: TxCreatorFullDuplex<'d, Dm>, pub rx: RxCreatorFullDuplex<'d, Dm>, }
Available on crate feature unstable only.
Expand description

Parallel IO in full duplex mode

Full duplex mode might limit the maximum possible bit width.

Fields§

§tx: TxCreatorFullDuplex<'d, Dm>

The transmitter (TX) channel responsible for handling DMA transfers in the parallel I/O full-duplex operation.

§rx: RxCreatorFullDuplex<'d, Dm>

The receiver (RX) channel responsible for handling DMA transfers in the parallel I/O full-duplex operation.

Implementations§

Source§

impl<'d> ParlIoFullDuplex<'d, Blocking>

Source

pub fn new<CH>( _parl_io: impl Peripheral<P = PARL_IO> + 'd, dma_channel: impl Peripheral<P = CH> + 'd, frequency: Rate, ) -> Result<Self, Error>

Create a new instance of ParlIoFullDuplex

Source

pub fn into_async(self) -> ParlIoFullDuplex<'d, Async>

Convert to an async version.

Source

pub fn set_interrupt_handler(&mut self, handler: InterruptHandler)

Sets the interrupt handler, enables it with crate::interrupt::Priority::min()

Interrupts are not enabled at the peripheral level here.

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Source

pub fn listen(&mut self, interrupts: impl Into<EnumSet<ParlIoInterrupt>>)

Listen for the given interrupts

Source

pub fn unlisten(&mut self, interrupts: impl Into<EnumSet<ParlIoInterrupt>>)

Unlisten the given interrupts

Source

pub fn interrupts(&mut self) -> EnumSet<ParlIoInterrupt>

Gets asserted interrupts

Source

pub fn clear_interrupts(&mut self, interrupts: EnumSet<ParlIoInterrupt>)

Resets asserted interrupts

Source§

impl<'d> ParlIoFullDuplex<'d, Async>

Source

pub fn into_blocking(self) -> ParlIoFullDuplex<'d, Blocking>

Convert to a blocking version.

Trait Implementations§

Source§

impl InterruptConfigurable for ParlIoFullDuplex<'_, Blocking>

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Source§

fn set_interrupt_handler(&mut self, handler: InterruptHandler)

Registers an interrupt handler for the peripheral. Read more

Auto Trait Implementations§

§

impl<'d, Dm> Freeze for ParlIoFullDuplex<'d, Dm>

§

impl<'d, Dm> RefUnwindSafe for ParlIoFullDuplex<'d, Dm>
where Dm: RefUnwindSafe,

§

impl<'d, Dm> Send for ParlIoFullDuplex<'d, Dm>
where Dm: Send,

§

impl<'d, Dm> Sync for ParlIoFullDuplex<'d, Dm>
where Dm: Sync,

§

impl<'d, Dm> Unpin for ParlIoFullDuplex<'d, Dm>
where Dm: Unpin,

§

impl<'d, Dm> !UnwindSafe for ParlIoFullDuplex<'d, Dm>

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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.
§

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

Performs the conversion.