Skip to main content

AsyncSpi

Struct AsyncSpi 

Source
pub struct AsyncSpi { /* private fields */ }
Expand description

Async SPI bus master.

Implementations§

Source§

impl AsyncSpi

Source

pub const unsafe fn from_handle(handle: ove_spi_t) -> Self

Wrap an existing ove_spi_t handle for async use.

§Safety

handle must be a valid SPI handle. The caller must not use the same handle through a sync crate::spi::Spi wrapper while async transfers are in flight.

Source

pub async fn transfer<'a>( &'a self, cs: Option<&'a ove_spi_cs>, tx: &'a [u8], rx: &'a mut [u8], ) -> Result<()>

Submit an async full-duplex transfer.

tx and rx lengths must match the actual transfer size. The future is 'a-bound to the buffers so they can’t be dropped while in flight.

Source

pub async fn write<'a>( &'a self, cs: Option<&'a ove_spi_cs>, data: &'a [u8], ) -> Result<()>

Async write-only transfer.

Source

pub async fn read<'a>( &'a self, cs: Option<&'a ove_spi_cs>, buf: &'a mut [u8], ) -> Result<()>

Async read-only transfer.

Trait Implementations§

Source§

impl ErrorType for AsyncSpi

Source§

type Error = Error

Error type.
Source§

impl SpiBus for AsyncSpi

Source§

async fn read(&mut self, words: &mut [u8]) -> Result<(), Self::Error>

Read words from the slave. Read more
Source§

async fn write(&mut self, words: &[u8]) -> Result<(), Self::Error>

Write words to the slave, ignoring all the incoming words. Read more
Source§

async fn transfer( &mut self, read: &mut [u8], write: &[u8], ) -> Result<(), Self::Error>

Write and read simultaneously. write is written to the slave on MOSI and words received on MISO are stored in read. Read more
Source§

async fn transfer_in_place( &mut self, words: &mut [u8], ) -> Result<(), Self::Error>

Write and read simultaneously. The contents of words are written to the slave, and the received words are stored into the same words buffer, overwriting it. Read more
Source§

async fn flush(&mut self) -> Result<(), Self::Error>

Wait until all operations have completed and the bus is idle. Read more
Source§

impl Send for AsyncSpi

Source§

impl Sync for AsyncSpi

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.