Struct esp32c2_hal::spi::dma::SpiDma
source · pub struct SpiDma<'d, T, TX, RX, P, M>where
TX: Tx,
RX: Rx,
P: SpiPeripheral,
M: DuplexMode,{ /* private fields */ }
Expand description
A DMA capable SPI instance.
Implementations§
source§impl<'d, T, TX, RX, P, M> SpiDma<'d, T, TX, RX, P, M>where
T: InstanceDma<TX, RX>,
TX: Tx,
RX: Rx,
P: SpiPeripheral,
M: IsFullDuplex,
impl<'d, T, TX, RX, P, M> SpiDma<'d, T, TX, RX, P, M>where T: InstanceDma<TX, RX>, TX: Tx, RX: Rx, P: SpiPeripheral, M: IsFullDuplex,
sourcepub fn dma_write<TXBUF>(
self,
words: TXBUF
) -> Result<SpiDmaTransfer<'d, T, TX, RX, P, TXBUF, M>, Error>where
TXBUF: ReadBuffer<Word = u8>,
pub fn dma_write<TXBUF>( self, words: TXBUF ) -> Result<SpiDmaTransfer<'d, T, TX, RX, P, TXBUF, M>, Error>where TXBUF: ReadBuffer<Word = u8>,
Perform 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.
sourcepub fn dma_read<RXBUF>(
self,
words: RXBUF
) -> Result<SpiDmaTransfer<'d, T, TX, RX, P, RXBUF, M>, Error>where
RXBUF: WriteBuffer<Word = u8>,
pub fn dma_read<RXBUF>( self, words: RXBUF ) -> Result<SpiDmaTransfer<'d, T, TX, RX, P, RXBUF, M>, Error>where RXBUF: WriteBuffer<Word = u8>,
Perform 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.
sourcepub fn dma_transfer<TXBUF, RXBUF>(
self,
words: TXBUF,
read_buffer: RXBUF
) -> Result<SpiDmaTransferRxTx<'d, T, TX, RX, P, RXBUF, TXBUF, M>, 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, TX, RX, P, RXBUF, TXBUF, M>, Error>where TXBUF: ReadBuffer<Word = u8>, RXBUF: WriteBuffer<Word = u8>,
Perform 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.
source§impl<'d, T, TX, RX, P, M> SpiDma<'d, T, TX, RX, P, M>where
T: InstanceDma<TX, RX>,
TX: Tx,
RX: Rx,
P: SpiPeripheral,
M: IsHalfDuplex,
impl<'d, T, TX, RX, P, M> SpiDma<'d, T, TX, RX, P, M>where T: InstanceDma<TX, RX>, TX: Tx, RX: Rx, P: SpiPeripheral, M: IsHalfDuplex,
pub fn read<RXBUF>( self, data_mode: SpiDataMode, cmd: Command, address: Address, dummy: u8, buffer: RXBUF ) -> Result<SpiDmaTransfer<'d, T, TX, RX, P, RXBUF, M>, Error>where RXBUF: WriteBuffer<Word = u8>,
pub fn write<TXBUF>( self, data_mode: SpiDataMode, cmd: Command, address: Address, dummy: u8, buffer: TXBUF ) -> Result<SpiDmaTransfer<'d, T, TX, RX, P, TXBUF, M>, Error>where TXBUF: ReadBuffer<Word = u8>,
Trait Implementations§
source§impl<'d, T, TX, RX, P, BUFFER, M> DmaTransfer<BUFFER, SpiDma<'d, T, TX, RX, P, M>> for SpiDmaTransfer<'d, T, TX, RX, P, BUFFER, M>where
T: InstanceDma<TX, RX>,
TX: Tx,
RX: Rx,
P: SpiPeripheral,
M: DuplexMode,
impl<'d, T, TX, RX, P, BUFFER, M> DmaTransfer<BUFFER, SpiDma<'d, T, TX, RX, P, M>> for SpiDmaTransfer<'d, T, TX, RX, P, BUFFER, M>where T: InstanceDma<TX, RX>, TX: Tx, RX: Rx, P: SpiPeripheral, M: DuplexMode,
source§impl<'d, T, TX, RX, P, RXBUF, TXBUF, M> DmaTransferRxTx<RXBUF, TXBUF, SpiDma<'d, T, TX, RX, P, M>> for SpiDmaTransferRxTx<'d, T, TX, RX, P, RXBUF, TXBUF, M>where
T: InstanceDma<TX, RX>,
TX: Tx,
RX: Rx,
P: SpiPeripheral,
M: DuplexMode,
impl<'d, T, TX, RX, P, RXBUF, TXBUF, M> DmaTransferRxTx<RXBUF, TXBUF, SpiDma<'d, T, TX, RX, P, M>> for SpiDmaTransferRxTx<'d, T, TX, RX, P, RXBUF, TXBUF, M>where T: InstanceDma<TX, RX>, TX: Tx, RX: Rx, P: SpiPeripheral, M: DuplexMode,
source§impl<'d, T, TX, RX, P, M> Transfer<u8> for SpiDma<'d, T, TX, RX, P, M>where
T: InstanceDma<TX, RX>,
TX: Tx,
RX: Rx,
P: SpiPeripheral,
M: IsFullDuplex,
impl<'d, T, TX, RX, P, M> Transfer<u8> for SpiDma<'d, T, TX, RX, P, M>where T: InstanceDma<TX, RX>, TX: Tx, RX: Rx, P: SpiPeripheral, M: IsFullDuplex,
source§impl<'d, T, TX, RX, P, M> Write<u8> for SpiDma<'d, T, TX, RX, P, M>where
T: InstanceDma<TX, RX>,
TX: Tx,
RX: Rx,
P: SpiPeripheral,
M: IsFullDuplex,
impl<'d, T, TX, RX, P, M> Write<u8> for SpiDma<'d, T, TX, RX, P, M>where T: InstanceDma<TX, RX>, TX: Tx, RX: Rx, P: SpiPeripheral, M: IsFullDuplex,
Auto Trait Implementations§
impl<'d, T, TX, RX, P, M> RefUnwindSafe for SpiDma<'d, T, TX, RX, P, M>where M: RefUnwindSafe, P: RefUnwindSafe, RX: RefUnwindSafe, T: RefUnwindSafe, TX: RefUnwindSafe,
impl<'d, T, TX, RX, P, M> Send for SpiDma<'d, T, TX, RX, P, M>where M: Send, P: Send, RX: Send, T: Send, TX: Send,
impl<'d, T, TX, RX, P, M> Sync for SpiDma<'d, T, TX, RX, P, M>where M: Sync, P: Sync, RX: Sync, T: Sync, TX: Sync,
impl<'d, T, TX, RX, P, M> Unpin for SpiDma<'d, T, TX, RX, P, M>where M: Unpin, P: Unpin, RX: Unpin, T: Unpin, TX: Unpin,
impl<'d, T, TX, RX, P, M> !UnwindSafe for SpiDma<'d, T, TX, RX, P, M>
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