Skip to main content

Spi

Struct Spi 

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

SPI bus master.

Wraps an opaque ove_spi_t handle provided by the board configuration. Construct via Spi::from_handle.

Implementations§

Source§

impl Spi

Source

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

Wrap an existing ove_spi_t handle.

§Safety

handle must be a valid SPI handle returned by the substrate. The caller is responsible for ensuring no other Spi wrapper exists for the same handle concurrently.

Source

pub fn raw(&self) -> ove_spi_t

Return the underlying handle.

Source

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

Full-duplex SPI transfer. tx or rx may be empty for half-duplex.

Source

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

Write-only SPI transfer.

Source

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

Read-only SPI transfer (clocks out zeros).

Source

pub fn transfer_seq( &self, cs: Option<&ove_spi_cs>, xfers: &[ove_spi_xfer], timeout: Duration, ) -> Result<()>

Execute a sequence of SPI transfers under a single chip-select assertion.

Trait Implementations§

Source§

impl Clone for Spi

Source§

fn clone(&self) -> Spi

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Spi

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl ErrorType for Spi

Source§

type Error = Error

Error type.
Source§

impl SpiBus for Spi

Source§

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

Read words from the slave. Read more
Source§

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

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

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§

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§

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

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

impl Copy for Spi

Auto Trait Implementations§

§

impl Freeze for Spi

§

impl RefUnwindSafe for Spi

§

impl !Send for Spi

§

impl !Sync for Spi

§

impl Unpin for Spi

§

impl UnsafeUnpin for Spi

§

impl UnwindSafe for Spi

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.