pub struct SpiDma<'d, T, C, M>where
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
M: DuplexMode,{ /* private fields */ }
Expand description
A DMA capable SPI instance.
Implementations§
source§impl<'d, T, C, M> SpiDma<'d, T, C, M>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
M: DuplexMode,
impl<'d, T, C, M> SpiDma<'d, T, C, M>where T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>, C: ChannelTypes, <C as ChannelTypes>::P: SpiPeripheral, M: DuplexMode,
pub fn change_bus_frequency( &mut self, frequency: Rate<u32, 1, 1>, clocks: &Clocks<'_> )
source§impl<'d, T, C, M> SpiDma<'d, T, C, M>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
M: IsFullDuplex,
impl<'d, T, C, M> SpiDma<'d, T, C, M>where T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>, C: ChannelTypes, <C as ChannelTypes>::P: SpiPeripheral, M: IsFullDuplex,
sourcepub fn dma_write<TXBUF>(
self,
words: TXBUF
) -> Result<SpiDmaTransfer<'d, T, C, TXBUF, M>, Error>where
TXBUF: ReadBuffer<Word = u8>,
pub fn dma_write<TXBUF>( self, words: TXBUF ) -> Result<SpiDmaTransfer<'d, T, C, 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, C, RXBUF, M>, Error>where
RXBUF: WriteBuffer<Word = u8>,
pub fn dma_read<RXBUF>( self, words: RXBUF ) -> Result<SpiDmaTransfer<'d, T, C, 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, C, 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, C, 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, C, M> SpiDma<'d, T, C, M>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
M: IsHalfDuplex,
impl<'d, T, C, M> SpiDma<'d, T, C, M>where T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>, C: ChannelTypes, <C as ChannelTypes>::P: SpiPeripheral, M: IsHalfDuplex,
pub fn read<RXBUF>( self, data_mode: SpiDataMode, cmd: Command, address: Address, dummy: u8, buffer: RXBUF ) -> Result<SpiDmaTransfer<'d, T, C, 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, C, TXBUF, M>, Error>where TXBUF: ReadBuffer<Word = u8>,
Trait Implementations§
source§impl<'d, T, C, M> Debug for SpiDma<'d, T, C, M>where
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
M: DuplexMode,
impl<'d, T, C, M> Debug for SpiDma<'d, T, C, M>where C: ChannelTypes, <C as ChannelTypes>::P: SpiPeripheral, M: DuplexMode,
source§impl<'d, T, C, BUFFER, M> DmaTransfer<BUFFER, SpiDma<'d, T, C, M>> for SpiDmaTransfer<'d, T, C, BUFFER, M>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
M: DuplexMode,
impl<'d, T, C, BUFFER, M> DmaTransfer<BUFFER, SpiDma<'d, T, C, M>> for SpiDmaTransfer<'d, T, C, BUFFER, M>where T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>, C: ChannelTypes, <C as ChannelTypes>::P: SpiPeripheral, M: DuplexMode,
source§impl<'d, T, C, RXBUF, TXBUF, M> DmaTransferRxTx<RXBUF, TXBUF, SpiDma<'d, T, C, M>> for SpiDmaTransferRxTx<'d, T, C, RXBUF, TXBUF, M>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
M: DuplexMode,
impl<'d, T, C, RXBUF, TXBUF, M> DmaTransferRxTx<RXBUF, TXBUF, SpiDma<'d, T, C, M>> for SpiDmaTransferRxTx<'d, T, C, RXBUF, TXBUF, M>where T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>, C: ChannelTypes, <C as ChannelTypes>::P: SpiPeripheral, M: DuplexMode,
source§impl<'d, T, C, M> Transfer<u8> for SpiDma<'d, T, C, M>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
M: IsFullDuplex,
impl<'d, T, C, M> Transfer<u8> for SpiDma<'d, T, C, M>where T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>, C: ChannelTypes, <C as ChannelTypes>::P: SpiPeripheral, M: IsFullDuplex,
source§impl<'d, T, C, M> Write<u8> for SpiDma<'d, T, C, M>where
T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>,
C: ChannelTypes,
<C as ChannelTypes>::P: SpiPeripheral,
M: IsFullDuplex,
impl<'d, T, C, M> Write<u8> for SpiDma<'d, T, C, M>where T: InstanceDma<<C as ChannelTypes>::Tx<'d>, <C as ChannelTypes>::Rx<'d>>, C: ChannelTypes, <C as ChannelTypes>::P: SpiPeripheral, M: IsFullDuplex,
Auto Trait Implementations§
impl<'d, T, C, M> RefUnwindSafe for SpiDma<'d, T, C, M>where M: RefUnwindSafe, T: RefUnwindSafe, <C as ChannelTypes>::Rx<'d>: RefUnwindSafe, <C as ChannelTypes>::Tx<'d>: RefUnwindSafe,
impl<'d, T, C, M> Send for SpiDma<'d, T, C, M>where M: Send, T: Send, <C as ChannelTypes>::Rx<'d>: Send, <C as ChannelTypes>::Tx<'d>: Send,
impl<'d, T, C, M> Sync for SpiDma<'d, T, C, M>where M: Sync, T: Sync, <C as ChannelTypes>::Rx<'d>: Sync, <C as ChannelTypes>::Tx<'d>: Sync,
impl<'d, T, C, M> Unpin for SpiDma<'d, T, C, M>where M: Unpin, T: Unpin, <C as ChannelTypes>::Rx<'d>: Unpin, <C as ChannelTypes>::Tx<'d>: Unpin,
impl<'d, T, C, M> !UnwindSafe for SpiDma<'d, T, C, 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