pub struct SpiDma<'d, T, C>where
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,{ /* 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<SpiDmaTransfer<'d, T, C, TXBUF>, Error>where
TXBUF: ReadBuffer<Word = u8>,
pub fn dma_write<TXBUF>( self, words: TXBUF ) -> Result<SpiDmaTransfer<'d, T, C, TXBUF>, Error>where TXBUF: ReadBuffer<Word = u8>,
Register a buffer for a DMA write.
This will return a SpiDmaTransfer 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<SpiDmaTransfer<'d, T, C, RXBUF>, Error>where
RXBUF: WriteBuffer<Word = u8>,
pub fn dma_read<RXBUF>( self, words: RXBUF ) -> Result<SpiDmaTransfer<'d, T, C, RXBUF>, Error>where RXBUF: WriteBuffer<Word = u8>,
Register a buffer for a DMA read.
This will return a SpiDmaTransfer 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>where
TXBUF: ReadBuffer<Word = u8>,
RXBUF: WriteBuffer<Word = u8>,
pub fn dma_transfer<TXBUF, RXBUF>( self, words: TXBUF, read_buffer: RXBUF ) -> Result<SpiDmaTransferRxTx<'d, T, C, RXBUF, TXBUF>, Error>where TXBUF: ReadBuffer<Word = u8>, RXBUF: WriteBuffer<Word = u8>,
Register buffers for a DMA transfer.
This will return a SpiDmaTransfer 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> Debug for SpiDma<'d, T, C>where
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
impl<'d, T, C> Debug for SpiDma<'d, T, C>where C: ChannelTypes, <C as ChannelTypes>::P: SpiPeripheral,
source§impl<'d, T, C, BUFFER> DmaTransfer<BUFFER, SpiDma<'d, T, C>> for SpiDmaTransfer<'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 SpiDmaTransfer<'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>where T: Send, <C as ChannelTypes>::Rx<'d>: Send, <C as ChannelTypes>::Tx<'d>: Send,
impl<'d, T, C> Sync for SpiDma<'d, T, C>where T: Sync, <C as ChannelTypes>::Rx<'d>: Sync, <C as ChannelTypes>::Tx<'d>: Sync,
impl<'d, T, C> Unpin for SpiDma<'d, T, C>where T: Unpin, <C as ChannelTypes>::Rx<'d>: Unpin, <C as ChannelTypes>::Tx<'d>: Unpin,
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