Struct nrf52832_hal::Spim
source · [−]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
sourceimpl<T> Spim<T> where
T: Instance,
impl<T> Spim<T> where
T: Instance,
pub fn new(
spim: T,
pins: Pins,
frequency: FREQUENCY_A,
mode: Mode,
orc: u8
) -> Spim<T>
sourcepub fn transfer(
&mut self,
chip_select: &mut Pin<Output<PushPull>>,
buffer: &mut [u8]
) -> Result<(), Error>
pub fn transfer(
&mut self,
chip_select: &mut Pin<Output<PushPull>>,
buffer: &mut [u8]
) -> Result<(), Error>
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.
sourcepub fn transfer_split_even(
&mut self,
chip_select: &mut Pin<Output<PushPull>>,
tx_buffer: &[u8],
rx_buffer: &mut [u8]
) -> Result<(), Error>
pub fn transfer_split_even(
&mut self,
chip_select: &mut Pin<Output<PushPull>>,
tx_buffer: &[u8],
rx_buffer: &mut [u8]
) -> Result<(), Error>
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.
sourcepub fn transfer_split_uneven(
&mut self,
chip_select: &mut Pin<Output<PushPull>>,
tx_buffer: &[u8],
rx_buffer: &mut [u8]
) -> Result<(), Error>
pub fn transfer_split_uneven(
&mut self,
chip_select: &mut Pin<Output<PushPull>>,
tx_buffer: &[u8],
rx_buffer: &mut [u8]
) -> Result<(), Error>
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.
Trait Implementations
Auto Trait Implementations
impl<T> RefUnwindSafe for Spim<T> where
T: RefUnwindSafe,
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,
impl<T> UnwindSafe for Spim<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedAs for T
impl<T> CheckedAs for T
sourcefn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
sourcefn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
sourceimpl<Src, Dst> LosslessTryInto<Dst> for Src where
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Src where
Dst: LosslessTryFrom<Src>,
sourcefn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
sourceimpl<Src, Dst> LossyInto<Dst> for Src where
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Src where
Dst: LossyFrom<Src>,
sourcefn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
sourceimpl<T> OverflowingAs for T
impl<T> OverflowingAs for T
sourcefn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
sourcefn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
OverflowingCasts the value.
sourceimpl<T> SaturatingAs for T
impl<T> SaturatingAs for T
sourcefn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
sourcefn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
sourceimpl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
sourcefn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
sourcefn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
UnwrappedCasts the value.
sourceimpl<T> WrappingAs for T
impl<T> WrappingAs for T
sourcefn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
sourcefn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
WrappingCasts the value.