pub struct I2sDmaChannel<'d>(/* private fields */);Available on crate feature
unstable only.Expand description
An I2S-compatible type-erased DMA channel.
This struct is a type-erased version of a peripheral singleton. It is useful
for creating arrays of peripherals, or avoiding generics. Peripheral singletons
can be type erased by using their From implementation.
ⓘ
let any_peripheral = I2sDmaChannel::from(peripheral);Implementations§
Source§impl I2sDmaChannel<'_>
impl I2sDmaChannel<'_>
Sourcepub unsafe fn clone_unchecked(&self) -> Self
pub unsafe fn clone_unchecked(&self) -> Self
Unsafely clone this peripheral reference.
§Safety
You must ensure that you’re only using one instance of this type at a time.
Sourcepub fn reborrow(&mut self) -> I2sDmaChannel<'_>
pub fn reborrow(&mut self) -> I2sDmaChannel<'_>
Creates a new peripheral reference with a shorter lifetime.
Use this method if you would like to keep working with the peripheral after you dropped the driver that consumes this.
See Peripheral singleton section for more information.
Sourcepub fn downcast<P>(self) -> Result<P, Self>where
Self: TryInto<P, Error = Self>,
pub fn downcast<P>(self) -> Result<P, Self>where
Self: TryInto<P, Error = Self>,
Attempts to downcast the pin into the underlying peripheral instance.
§Example
// let peri0 = peripherals.PERI0;
// let peri1 = peripherals.PERI1;
let any_peri0 = AnyPeripheral::from(peri0);
let any_peri1 = AnyPeripheral::from(peri1);
let uart0 = any_peri0
.downcast::<PERI0>()
.expect("This downcast succeeds because AnyPeripheral was created from Peri0");
let uart0 = any_peri1
.downcast::<PERI0>()
.expect_err("This AnyPeripheral was created from Peri1, it cannot be downcast to Peri0");Trait Implementations§
Source§impl<'d> Debug for I2sDmaChannel<'d>
impl<'d> Debug for I2sDmaChannel<'d>
Source§impl<'d> DmaChannel for I2sDmaChannel<'d>
impl<'d> DmaChannel for I2sDmaChannel<'d>
Source§type Rx = I2sDmaRxChannel<'d>
type Rx = I2sDmaRxChannel<'d>
A description of the RX half of a DMA Channel.
Source§type Tx = I2sDmaTxChannel<'d>
type Tx = I2sDmaTxChannel<'d>
A description of the TX half of a DMA Channel.
Source§impl<'d> DmaEligiblePeripheral<I2sDmaChannel<'d>> for AnyI2s<'d>
impl<'d> DmaEligiblePeripheral<I2sDmaChannel<'d>> for AnyI2s<'d>
Source§fn dma_peripheral(&self) -> DmaPeripheral
fn dma_peripheral(&self) -> DmaPeripheral
Returns the
DmaPeripheral ID for runtime compatibility checks.Source§impl<'d> DmaEligiblePeripheral<I2sDmaChannel<'d>> for I2S0<'d>
impl<'d> DmaEligiblePeripheral<I2sDmaChannel<'d>> for I2S0<'d>
Source§fn dma_peripheral(&self) -> DmaPeripheral
fn dma_peripheral(&self) -> DmaPeripheral
Returns the
DmaPeripheral ID for runtime compatibility checks.Source§impl<'d> From<DMA_I2S0<'d>> for I2sDmaChannel<'d>
impl<'d> From<DMA_I2S0<'d>> for I2sDmaChannel<'d>
Source§impl<'d> From<I2sDmaChannel<'d>> for I2sDmaRxChannel<'d>
impl<'d> From<I2sDmaChannel<'d>> for I2sDmaRxChannel<'d>
Source§fn from(this: I2sDmaChannel<'d>) -> I2sDmaRxChannel<'d>
fn from(this: I2sDmaChannel<'d>) -> I2sDmaRxChannel<'d>
Converts to this type from the input type.
Source§impl<'d> From<I2sDmaChannel<'d>> for I2sDmaTxChannel<'d>
impl<'d> From<I2sDmaChannel<'d>> for I2sDmaTxChannel<'d>
Source§fn from(this: I2sDmaChannel<'d>) -> I2sDmaTxChannel<'d>
fn from(this: I2sDmaChannel<'d>) -> I2sDmaTxChannel<'d>
Converts to this type from the input type.
Source§impl<'d> TryFrom<I2sDmaChannel<'d>> for DMA_I2S0<'d>
impl<'d> TryFrom<I2sDmaChannel<'d>> for DMA_I2S0<'d>
Source§type Error = I2sDmaChannel<'d>
type Error = I2sDmaChannel<'d>
The type returned in the event of a conversion error.
Source§fn try_from(any: I2sDmaChannel<'d>) -> Result<Self, I2sDmaChannel<'d>>
fn try_from(any: I2sDmaChannel<'d>) -> Result<Self, I2sDmaChannel<'d>>
Performs the conversion.