Struct esp_idf_svc::hal::sys::i2s_driver_config_t

source ·
#[repr(C)]
pub struct i2s_driver_config_t {
Show 19 fields pub mode: u32, pub sample_rate: u32, pub bits_per_sample: u32, pub channel_format: u32, pub communication_format: u32, pub intr_alloc_flags: i32, pub __bindgen_anon_1: i2s_driver_config_t__bindgen_ty_1, pub __bindgen_anon_2: i2s_driver_config_t__bindgen_ty_2, pub use_apll: bool, pub tx_desc_auto_clear: bool, pub fixed_mclk: i32, pub mclk_multiple: u32, pub bits_per_chan: u32, pub chan_mask: i32, pub total_chan: u32, pub left_align: bool, pub big_edin: bool, pub bit_order_msb: bool, pub skip_msk: bool,
}
Expand description

@brief I2S driver configuration parameters

Fields§

§mode: u32

< I2S work mode

§sample_rate: u32

< I2S sample rate

§bits_per_sample: u32

< I2S sample bits in one channel

§channel_format: u32

< I2S channel format.

§communication_format: u32

< I2S communication format

§intr_alloc_flags: i32

< Flags used to allocate the interrupt. One or multiple (ORred) ESP_INTR_FLAG_* values. See esp_intr_alloc.h for more info

§__bindgen_anon_1: i2s_driver_config_t__bindgen_ty_1§__bindgen_anon_2: i2s_driver_config_t__bindgen_ty_2§use_apll: bool

< I2S using APLL as main I2S clock, enable it to get accurate clock

§tx_desc_auto_clear: bool

< I2S auto clear tx descriptor if there is underflow condition (helps in avoiding noise in case of data unavailability)

§fixed_mclk: i32

< I2S using fixed MCLK output. If use_apll = true and fixed_mclk > 0, then the clock output for i2s is fixed and equal to the fixed_mclk value. If fixed_mclk set, mclk_multiple won’t take effect

§mclk_multiple: u32

< The multiple of I2S master clock(MCLK) to sample rate

§bits_per_chan: u32

< I2S total bits in one channel, only take effect when larger than ‘bits_per_sample’, default ‘0’ means equal to ‘bits_per_sample’

§chan_mask: i32

< I2S active channel bit mask, set value in i2s_channel_t to enable specific channel, the bit map of active channel can not exceed (0x1<<total_chan).

§total_chan: u32

< I2S Total number of channels. If it is smaller than the biggest active channel number, it will be set to this number automatically.

§left_align: bool

< Set to enable left alignment

§big_edin: bool

< Set to enable big endian

§bit_order_msb: bool

< Set to enable msb order

§skip_msk: bool

< Set to enable skip mask. If it is enabled, only the data of the enabled channels will be sent, otherwise all data stored in DMA TX buffer will be sent

Trait Implementations§

source§

impl Clone for i2s_driver_config_t

source§

fn clone(&self) -> i2s_driver_config_t

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 Default for i2s_driver_config_t

source§

fn default() -> i2s_driver_config_t

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

impl Copy for i2s_driver_config_t

Auto Trait Implementations§

§

impl Freeze for i2s_driver_config_t

§

impl RefUnwindSafe for i2s_driver_config_t

§

impl Send for i2s_driver_config_t

§

impl Sync for i2s_driver_config_t

§

impl Unpin for i2s_driver_config_t

§

impl UnwindSafe for i2s_driver_config_t

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> CloneToUninit for T
where T: Copy,

§

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.