embassy-nrf

Crates

git

Versions

nrf5340-app-ns

Flavors

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

Struct embassy_nrf::spis::Spis

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

SPIS driver.

Implementationsยง

sourceยง

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

source

pub fn new( spis: impl Peripheral<P = T> + 'd, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, cs: impl Peripheral<P = impl GpioPin> + '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 SPIS driver.

source

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

Create a new SPIS driver, capable of TX only (MISO only).

source

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

Create a new SPIS driver, capable of RX only (MOSI only).

source

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

Create a new SPIS driver, capable of TX only (MISO only) without SCK pin.

source

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

Reads data from the SPI bus without sending anything. Blocks until cs is deasserted. Returns number of bytes read.

source

pub fn blocking_transfer( &mut self, read: &mut [u8], write: &[u8], ) -> Result<(usize, usize), 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). Returns number of bytes transferred (n_rx, n_tx).

source

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

Same as blocking_transfer but will fail instead of copying data into RAM. Consult the module level documentation to learn more. Returns number of bytes transferred (n_rx, n_tx).

source

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

Simultaneously sends and receives data. Places the received data into the same buffer and blocks until the transmission is completed. Returns number of bytes transferred.

source

pub fn blocking_write(&mut self, data: &[u8]) -> Result<usize, 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). Returns number of bytes written.

source

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

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

source

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

Reads data from the SPI bus without sending anything. Returns number of bytes read.

source

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

Simultaneously sends and receives data. If necessary, the write buffer will be copied into RAM (see struct description for detail). Returns number of bytes transferred (n_rx, n_tx).

source

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

Same as transfer but will fail instead of copying data into RAM. Consult the module level documentation to learn more. Returns number of bytes transferred (n_rx, n_tx).

source

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

Simultaneously sends and receives data. Places the received data into the same buffer. Returns number of bytes transferred.

source

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

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

source

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

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

source

pub fn is_overread(&mut self) -> bool

Checks if last transaction overread.

source

pub fn is_overflow(&mut self) -> bool

Checks if last transaction overflowed.

Trait Implementationsยง

sourceยง

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

sourceยง

fn drop(&mut self)

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

impl<'d, T: Instance> SetConfig for Spis<'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.

Auto Trait Implementationsยง

ยง

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

ยง

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

ยง

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

ยง

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

ยง

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

ยง

impl<'d, T> !UnwindSafe for Spis<'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.