[][src]Struct nrf52832_hal::Spim

pub struct Spim<T>(_);

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.

Methods

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

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

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

Read from an SPI slave

This method is deprecated. Consider using transfer or transfer_split

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> Write<u8> for Spim<T> where
    T: SpimExt
[src]

type Error = Error

Error type

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

type Error = Error

Error type

Auto Trait Implementations

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

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

Blanket Implementations

impl<T> From for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.

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

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

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

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

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

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

Error type

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

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

Error type

impl<T> Same for T

type Output = T

Should always be Self