Struct microbit::hal::spim::Spim[][src]

pub struct Spim<T>(_);
Expand description

Interface to a SPIM instance.

This is a very basic interface that comes with the following limitations:

  • The SPIM instances share the same address space with instances of SPIS, SPI, TWIM, TWIS, and TWI. You need to make sure that conflicting instances are disabled before using Spim. See product specification, section 15.2.

Implementations

impl<T> Spim<T> where
    T: Instance
[src]

pub fn new(
    spim: T,
    pins: Pins,
    frequency: FREQUENCY_A,
    mode: Mode,
    orc: u8
) -> Spim<T>
[src]

pub fn transfer(
    &mut self,
    chip_select: &mut Pin<Output<PushPull>>,
    buffer: &mut [u8]
) -> Result<(), Error>
[src]

Read and write from a SPI slave, using a single buffer.

This method implements a complete read transaction, which consists of the master transmitting what it wishes to read, and the slave responding with the requested data.

Uses the provided chip select pin to initiate the transaction. Transmits all bytes in buffer, then receives an equal number of bytes.

pub fn transfer_split_even(
    &mut self,
    chip_select: &mut Pin<Output<PushPull>>,
    tx_buffer: &[u8],
    rx_buffer: &mut [u8]
) -> Result<(), Error>
[src]

Read and write from a SPI slave, using separate read and write buffers.

This method implements a complete read transaction, which consists of the master transmitting what it wishes to read, and the slave responding with the requested data.

Uses the provided chip select pin to initiate the transaction. Transmits all bytes in tx_buffer, then receives bytes until rx_buffer is full.

If tx_buffer.len() != rx_buffer.len(), the transaction will stop at the smaller of either buffer.

pub fn transfer_split_uneven(
    &mut self,
    chip_select: &mut Pin<Output<PushPull>>,
    tx_buffer: &[u8],
    rx_buffer: &mut [u8]
) -> Result<(), Error>
[src]

Read and write from a SPI slave, using separate read and write buffers.

This method implements a complete read transaction, which consists of the master transmitting what it wishes to read, and the slave responding with the requested data.

Uses the provided chip select pin to initiate the transaction. Transmits all bytes in tx_buffer, then receives bytes until rx_buffer is full.

This method is more complicated than the other transfer methods because it is allowed to perform transactions where tx_buffer.len() != rx_buffer.len(). If this occurs, extra incoming bytes will be discarded, OR extra outgoing bytes will be filled with the orc value.

pub fn write(
    &mut self,
    chip_select: &mut Pin<Output<PushPull>>,
    tx_buffer: &[u8]
) -> Result<(), Error>
[src]

Write to an SPI slave.

This method uses the provided chip select pin to initiate the transaction, then transmits all bytes in tx_buffer. All incoming bytes are discarded.

pub fn free(self) -> T[src]

Return the raw interface to the underlying SPIM peripheral.

Trait Implementations

impl<T> Transfer<u8> for Spim<T> where
    T: Instance
[src]

type Error = Error

Error type

pub fn transfer(&mut self, words: &'w mut [u8]) -> Result<&'w [u8], Error>[src]

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

impl<T> Write<u8> for Spim<T> where
    T: Instance
[src]

type Error = Error

Error type

pub fn write(&mut self, words: &'w [u8]) -> Result<(), Error>[src]

Sends words to the slave, ignoring all the incoming words

Auto Trait Implementations

impl<T> Send for Spim<T> where
    T: Send

impl<T> Sync for Spim<T> where
    T: Sync

impl<T> Unpin for Spim<T> where
    T: Unpin

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Az for T[src]

pub fn az<Dst>(self) -> Dst where
    T: Cast<Dst>, 
[src]

Casts the value.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> CheckedAs for T[src]

pub fn checked_as<Dst>(self) -> Option<Dst> where
    T: CheckedCast<Dst>, 
[src]

Casts the value.

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<Src, Dst> LosslessTryInto<Dst> for Src where
    Dst: LosslessTryFrom<Src>, 
[src]

pub fn lossless_try_into(self) -> Option<Dst>[src]

Performs the conversion.

impl<Src, Dst> LossyInto<Dst> for Src where
    Dst: LossyFrom<Src>, 
[src]

pub fn lossy_into(self) -> Dst[src]

Performs the conversion.

impl<T> OverflowingAs for T[src]

pub fn overflowing_as<Dst>(self) -> (Dst, bool) where
    T: OverflowingCast<Dst>, 
[src]

Casts the value.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> SaturatingAs for T[src]

pub fn saturating_as<Dst>(self) -> Dst where
    T: SaturatingCast<Dst>, 
[src]

Casts the value.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T> UnwrappedAs for T[src]

pub fn unwrapped_as<Dst>(self) -> Dst where
    T: UnwrappedCast<Dst>, 
[src]

Casts the value.

impl<T> WrappingAs for T[src]

pub fn wrapping_as<Dst>(self) -> Dst where
    T: WrappingCast<Dst>, 
[src]

Casts the value.