embassy-nrf

Crates

git

Versions

nrf9120-ns

Flavors

๐Ÿ“ฃ We want to hear from you! Fill the Rust Embedded 2024 micro-survey.

Struct embassy_nrf::spim::Spim

source ยท
pub struct Spim<'d, T: Instance> { /* private fields */ }
Expand description

SPIM driver.

Implementationsยง

sourceยง

impl<'d, T: Instance> Spim<'d, T>

source

pub fn new( spim: impl Peripheral<P = T> + 'd, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, sck: impl Peripheral<P = impl GpioPin> + 'd, miso: impl Peripheral<P = impl GpioPin> + 'd, mosi: impl Peripheral<P = impl GpioPin> + 'd, config: Config, ) -> Self

Create a new SPIM driver.

source

pub fn new_txonly( spim: impl Peripheral<P = T> + 'd, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, sck: impl Peripheral<P = impl GpioPin> + 'd, mosi: impl Peripheral<P = impl GpioPin> + 'd, config: Config, ) -> Self

Create a new SPIM driver, capable of TX only (MOSI only).

source

pub fn new_rxonly( spim: impl Peripheral<P = T> + 'd, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, sck: impl Peripheral<P = impl GpioPin> + 'd, miso: impl Peripheral<P = impl GpioPin> + 'd, config: Config, ) -> Self

Create a new SPIM driver, capable of RX only (MISO only).

source

pub fn new_txonly_nosck( spim: impl Peripheral<P = T> + 'd, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, mosi: impl Peripheral<P = impl GpioPin> + 'd, config: Config, ) -> Self

Create a new SPIM driver, capable of TX only (MOSI only), without SCK pin.

source

pub fn blocking_read(&mut self, data: &mut [u8]) -> Result<(), Error>

Reads data from the SPI bus without sending anything. Blocks until the buffer has been filled.

source

pub fn blocking_transfer( &mut self, read: &mut [u8], write: &[u8], ) -> Result<(), Error>

Simultaneously sends and receives data. Blocks until the transmission is completed. If necessary, the write buffer will be copied into RAM (see struct description for detail).

source

pub fn blocking_transfer_from_ram( &mut self, read: &mut [u8], write: &[u8], ) -> Result<(), Error>

Same as blocking_transfer but will fail instead of copying data into RAM. Consult the module level documentation to learn more.

source

pub fn blocking_transfer_in_place( &mut self, data: &mut [u8], ) -> Result<(), Error>

Simultaneously sends and receives data. Places the received data into the same buffer and blocks until the transmission is completed.

source

pub fn blocking_write(&mut self, data: &[u8]) -> Result<(), Error>

Sends data, discarding any received data. Blocks until the transmission is completed. If necessary, the write buffer will be copied into RAM (see struct description for detail).

source

pub fn blocking_write_from_ram(&mut self, data: &[u8]) -> Result<(), Error>

Same as blocking_write but will fail instead of copying data into RAM. Consult the module level documentation to learn more.

source

pub async fn read(&mut self, data: &mut [u8]) -> Result<(), Error>

Reads data from the SPI bus without sending anything.

source

pub async fn transfer( &mut self, read: &mut [u8], write: &[u8], ) -> Result<(), Error>

Simultaneously sends and receives data. If necessary, the write buffer will be copied into RAM (see struct description for detail).

source

pub async fn transfer_from_ram( &mut self, read: &mut [u8], write: &[u8], ) -> Result<(), Error>

Same as transfer but will fail instead of copying data into RAM. Consult the module level documentation to learn more.

source

pub async fn transfer_in_place(&mut self, data: &mut [u8]) -> Result<(), Error>

Simultaneously sends and receives data. Places the received data into the same buffer.

source

pub async fn write(&mut self, data: &[u8]) -> Result<(), Error>

Sends data, discarding any received data. If necessary, the write buffer will be copied into RAM (see struct description for detail).

source

pub async fn write_from_ram(&mut self, data: &[u8]) -> Result<(), Error>

Same as write but will fail instead of copying data into RAM. Consult the module level documentation to learn more.

Trait Implementationsยง

sourceยง

impl<'d, T: Instance> Drop for Spim<'d, T>

sourceยง

fn drop(&mut self)

Executes the destructor for this type. Read more
sourceยง

impl<'d, T: Instance> ErrorType for Spim<'d, T>

sourceยง

type Error = Error

Error type.
sourceยง

impl<'d, T: Instance> SetConfig for Spim<'d, T>

sourceยง

type Config = Config

The configuration type used by this driver.
sourceยง

type ConfigError = ()

The error type that can occur if set_config fails.
sourceยง

fn set_config(&mut self, config: &Self::Config) -> Result<(), Self::ConfigError>

Set the configuration of the driver.
sourceยง

impl<'d, T: Instance> SpiBus for Spim<'d, T>

sourceยง

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

Wait until all operations have completed and the bus is idle. Read more
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ยง

impl<'d, T: Instance> SpiBus for Spim<'d, T>

sourceยง

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

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

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

Read words from the slave. Read more
sourceยง

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

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

async fn transfer(&mut self, rx: &mut [u8], tx: &[u8]) -> Result<(), 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ยง

async fn transfer_in_place(&mut self, words: &mut [u8]) -> Result<(), 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ยง

impl<'d, T: Instance> Transfer<u8> for Spim<'d, T>

sourceยง

type Error = Error

Error type
sourceยง

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

Sends words to the slave. Returns the words received from the slave
sourceยง

impl<'d, T: Instance> Write<u8> for Spim<'d, T>

sourceยง

type Error = Error

Error type
sourceยง

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

Sends words to the slave, ignoring all the incoming words

Auto Trait Implementationsยง

ยง

impl<'d, T> Freeze for Spim<'d, T>
where T: Freeze,

ยง

impl<'d, T> RefUnwindSafe for Spim<'d, T>
where T: RefUnwindSafe,

ยง

impl<'d, T> Send for Spim<'d, T>
where T: Send,

ยง

impl<'d, T> Sync for Spim<'d, T>
where T: Sync,

ยง

impl<'d, T> Unpin for Spim<'d, T>
where T: Unpin,

ยง

impl<'d, T> !UnwindSafe for Spim<'d, T>

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

sourceยง

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