Struct esp_idf_svc::hal::spi::config::Config

source ·
pub struct Config {
    pub baudrate: Hertz,
    pub data_mode: Mode,
    pub write_only: bool,
    pub duplex: Duplex,
    pub bit_order: BitOrder,
    pub cs_active_high: bool,
    pub cs_pre_delay_us: Option<u16>,
    pub cs_post_delay_us: Option<u8>,
    pub input_delay_ns: i32,
    pub polling: bool,
    pub allow_pre_post_delays: bool,
    pub queue_size: usize,
}
Expand description

SPI Device configuration

Fields§

§baudrate: Hertz§data_mode: Mode§write_only: bool

This property can be set to configure a SPI Device for being write only Thus the flag SPI_DEVICE_NO_DUMMY will be passed on initialization and it will unlock the possibility of using 80Mhz as the bus freq See https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/spi_master.html#timing-considerations

§duplex: Duplex§bit_order: BitOrder§cs_active_high: bool§cs_pre_delay_us: Option<u16>

On Half-Duplex transactions: cs_pre_delay_us % 16 corresponds to the number of SPI bit-cycles cs should be activated before the transmission. On Full-Duplex transactions: cs_pre_delay_us != 0 will add 1 microsecond of cs activation before transmission

§cs_post_delay_us: Option<u8>

< Amount of SPI bit-cycles the cs should stay active after the transmission (0-16)

§input_delay_ns: i32§polling: bool§allow_pre_post_delays: bool§queue_size: usize

Implementations§

source§

impl Config

source

pub fn new() -> Config

source

pub fn baudrate(self, baudrate: Hertz) -> Config

source

pub fn data_mode(self, data_mode: Mode) -> Config

source

pub fn write_only(self, write_only: bool) -> Config

source

pub fn duplex(self, duplex: Duplex) -> Config

source

pub fn bit_order(self, bit_order: BitOrder) -> Config

source

pub fn cs_active_high(self) -> Config

source

pub fn cs_pre_delay_us(self, delay_us: u16) -> Config

On Half-Duplex transactions: cs_pre_delay_us % 16 corresponds to the number of SPI bit-cycles cs should be activated before the transmission On Full-Duplex transactions: cs_pre_delay_us != 0 will add 1 microsecond of cs activation before transmission

source

pub fn cs_post_delay_us(self, delay_us: u8) -> Config

Add an aditional Amount of SPI bit-cycles the cs should be activated after the transmission (0-16). This only works on half-duplex transactions.

source

pub fn input_delay_ns(self, input_delay_ns: i32) -> Config

source

pub fn polling(self, polling: bool) -> Config

source

pub fn allow_pre_post_delays(self, allow_pre_post_delays: bool) -> Config

source

pub fn queue_size(self, queue_size: usize) -> Config

Trait Implementations§

source§

impl Clone for Config

source§

fn clone(&self) -> Config

Returns a copy of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Config

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for Config

source§

fn default() -> Config

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Config

§

impl RefUnwindSafe for Config

§

impl Send for Config

§

impl Sync for Config

§

impl Unpin for Config

§

impl UnwindSafe for Config

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

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

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
§

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

Performs the conversion.