pub struct SpiDma<'d, T, C>{ /* private fields */ }
Expand description
A DMA capable SPI instance.
Implementations§
source§impl<'d, T, C> SpiDma<'d, T, C>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
impl<'d, T, C> SpiDma<'d, T, C>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
sourcepub fn dma_write<TXBUF>(
self,
words: TXBUF
) -> Result<SpiDmaTransferTx<'d, T, C, TXBUF>, Error>where
TXBUF: ReadBuffer<Word = u8>,
pub fn dma_write<TXBUF>(
self,
words: TXBUF
) -> Result<SpiDmaTransferTx<'d, T, C, TXBUF>, Error>where
TXBUF: ReadBuffer<Word = u8>,
Register a buffer for a DMA write.
This will return a SpiDmaTransferTx owning the buffer(s) and the SPI instance. The maximum amount of data to be sent is 32736 bytes.
The write is driven by the SPI master’s sclk signal and cs line.
sourcepub fn dma_read<RXBUF>(
self,
words: RXBUF
) -> Result<SpiDmaTransferRx<'d, T, C, RXBUF>, Error>where
RXBUF: WriteBuffer<Word = u8>,
pub fn dma_read<RXBUF>(
self,
words: RXBUF
) -> Result<SpiDmaTransferRx<'d, T, C, RXBUF>, Error>where
RXBUF: WriteBuffer<Word = u8>,
Register a buffer for a DMA read.
This will return a SpiDmaTransferRx owning the buffer(s) and the SPI instance. The maximum amount of data to be received is 32736 bytes.
The read is driven by the SPI master’s sclk signal and cs line.
sourcepub fn dma_transfer<TXBUF, RXBUF>(
self,
words: TXBUF,
read_buffer: RXBUF
) -> Result<SpiDmaTransferRxTx<'d, T, C, RXBUF, TXBUF>, Error>
pub fn dma_transfer<TXBUF, RXBUF>( self, words: TXBUF, read_buffer: RXBUF ) -> Result<SpiDmaTransferRxTx<'d, T, C, RXBUF, TXBUF>, Error>
Register buffers for a DMA transfer.
This will return a SpiDmaTransferRxTx owning the buffer(s) and the SPI instance. The maximum amount of data to be sent/received is 32736 bytes.
The data transfer is driven by the SPI master’s sclk signal and cs line.
Trait Implementations§
source§impl<'d, T, C, BUFFER> DmaTransfer<BUFFER, SpiDma<'d, T, C>> for SpiDmaTransferRx<'d, T, C, BUFFER>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
impl<'d, T, C, BUFFER> DmaTransfer<BUFFER, SpiDma<'d, T, C>> for SpiDmaTransferRx<'d, T, C, BUFFER>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
source§impl<'d, T, C, BUFFER> DmaTransfer<BUFFER, SpiDma<'d, T, C>> for SpiDmaTransferTx<'d, T, C, BUFFER>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
impl<'d, T, C, BUFFER> DmaTransfer<BUFFER, SpiDma<'d, T, C>> for SpiDmaTransferTx<'d, T, C, BUFFER>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
source§impl<'d, T, C, RXBUF, TXBUF> DmaTransferRxTx<RXBUF, TXBUF, SpiDma<'d, T, C>> for SpiDmaTransferRxTx<'d, T, C, RXBUF, TXBUF>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
impl<'d, T, C, RXBUF, TXBUF> DmaTransferRxTx<RXBUF, TXBUF, SpiDma<'d, T, C>> for SpiDmaTransferRxTx<'d, T, C, RXBUF, TXBUF>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
Auto Trait Implementations§
impl<'d, T, C> RefUnwindSafe for SpiDma<'d, T, C>where
T: RefUnwindSafe,
<C as ChannelTypes>::Rx<'d>: RefUnwindSafe,
<C as ChannelTypes>::Tx<'d>: RefUnwindSafe,
impl<'d, T, C> Send for SpiDma<'d, T, C>
impl<'d, T, C> Sync for SpiDma<'d, T, C>
impl<'d, T, C> Unpin for SpiDma<'d, T, C>
impl<'d, T, C> !UnwindSafe for SpiDma<'d, T, C>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more