Struct nrf52810_hal::spi::Spi

source ·
pub struct Spi<T>(/* private fields */);
Expand description

Interface to a SPI instance.

Implementations§

source§

impl<T> Spi<T>
where T: Instance,

source

pub fn new(spi: T, pins: Pins, frequency: FREQUENCY_A, mode: Mode) -> Spi<T>

source

pub fn free(self) -> T

Return the raw interface to the underlying SPI peripheral.

Trait Implementations§

source§

impl<T> ErrorType for Spi<T>

§

type Error = Infallible

Error type.
source§

impl<T> FullDuplex<u8> for Spi<T>
where T: Instance,

source§

fn read(&mut self) -> Result<u8, Error<<Spi<T> as FullDuplex<u8>>::Error>>

Must only be called after send as the interface will read and write at the same time.

source§

fn send( &mut self, byte: u8 ) -> Result<(), Error<<Spi<T> as FullDuplex<u8>>::Error>>

Must only be called the same number of times as read.

nRF51 is double buffered; two bytes can be written before data must be read.

§

type Error = Error

An enumeration of SPI errors
source§

impl<T> SpiBus for Spi<T>
where T: Instance,

source§

fn read(&mut self, words: &mut [u8]) -> Result<(), <Spi<T> as ErrorType>::Error>

Read words from the slave. Read more
source§

fn write(&mut self, words: &[u8]) -> Result<(), <Spi<T> as ErrorType>::Error>

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

fn transfer( &mut self, read: &mut [u8], write: &[u8] ) -> Result<(), <Spi<T> as ErrorType>::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<(), <Spi<T> as ErrorType>::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<(), <Spi<T> as ErrorType>::Error>

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

impl<T> Default<u8> for Spi<T>
where Spi<T>: FullDuplex<u8>, T: Instance,

source§

impl<T> Default<u8> for Spi<T>
where Spi<T>: FullDuplex<u8>, T: Instance,

source§

impl<T> Default<u8> for Spi<T>
where Spi<T>: FullDuplex<u8>, T: Instance,

Auto Trait Implementations§

§

impl<T> Freeze for Spi<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Spi<T>
where T: RefUnwindSafe,

§

impl<T> Send for Spi<T>
where T: Send,

§

impl<T> Sync for Spi<T>
where T: Sync,

§

impl<T> Unpin for Spi<T>
where T: Unpin,

§

impl<T> UnwindSafe for Spi<T>
where T: UnwindSafe,

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> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
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<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

source§

fn lossy_into(self) -> Dst

Performs the conversion.
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<W, S> Transfer<W> for S
where S: Default<W>, W: Clone,

§

type Error = <S as FullDuplex<W>>::Error

Error type
source§

fn transfer<'w>( &mut self, words: &'w mut [W] ) -> Result<&'w [W], <S as FullDuplex<W>>::Error>

Sends words to the slave. Returns the words received from the slave
source§

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

§

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>,

§

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.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<W, S> Write<W> for S
where S: Default<W>, W: Clone,

§

type Error = <S as FullDuplex<W>>::Error

Error type
source§

fn write(&mut self, words: &[W]) -> Result<(), <S as FullDuplex<W>>::Error>

Sends words to the slave, ignoring all the incoming words
source§

impl<W, S> WriteIter<W> for S
where S: Default<W>, W: Clone,

§

type Error = <S as FullDuplex<W>>::Error

Error type
source§

fn write_iter<WI>( &mut self, words: WI ) -> Result<(), <S as FullDuplex<W>>::Error>
where WI: IntoIterator<Item = W>,

Sends words to the slave, ignoring all the incoming words