Skip to main content

I2S0

Struct I2S0 

#[non_exhaustive]
pub struct I2S0<'a> { /* private fields */ }
Available on crate features unstable only.
Expand description

I2S0 peripheral singleton

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Implementations§

§

impl I2S0<'_>

pub unsafe fn steal() -> I2S0<'_>

Unsafely create an instance of this peripheral out of thin air.

§Safety

You must ensure that you’re only using one instance of this type at a time.

pub unsafe fn clone_unchecked(&self) -> I2S0<'_>

Unsafely clone this peripheral reference.

§Safety

You must ensure that you’re only using one instance of this type at a time.

pub fn reborrow(&mut self) -> I2S0<'_>

Creates a new peripheral reference with a shorter lifetime.

Use this method if you would like to keep working with the peripheral after you dropped the driver that consumes this.

pub fn bind_peri_interrupt(&self, handler: InterruptHandler)

Binds an interrupt handler to the corresponding interrupt for this peripheral, and enables the interrupt.

This function is a very low-level way to work with interrupts. Unless you're writing drivers, this is probably not the interrupt API you want to use.
§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

pub fn enable_peri_interrupt(&self, priority: Priority)

Enables the I2S0 peripheral interrupt on the given priority level.

This function is a very low-level way to work with interrupts. Unless you're writing drivers, this is probably not the interrupt API you want to use.

Note that a suitable interrupt handler needs to be set up before the first interrupt is triggered, otherwise the default handler will panic. To set up an interrupt handler, use Self::bind_peri_interrupt or create a function that has the same (non-mangled) name as the interrupt you want to handle.

§Examples
use esp_hal::interrupt::Priority;

#[unsafe(no_mangle)]
unsafe extern "C" fn I2S0() {
    // do something
}

peripherals.I2S0.enable_peri_interrupt(Priority::Priority1);
peripherals.I2S0.disable_peri_interrupt_on_all_cores();

pub fn disable_peri_interrupt(&self)

Disables the I2S0 peripheral interrupt handler on the current CPU core.

This function is a very low-level way to work with interrupts. Unless you're writing drivers, this is probably not the interrupt API you want to use.
# Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

pub fn disable_peri_interrupt_on_all_cores(&self)

Disables the I2S0 peripheral interrupt handler on all cores.

This function is a very low-level way to work with interrupts. Unless you're writing drivers, this is probably not the interrupt API you want to use.
§

impl I2S0<'_>

pub const PTR: *const <Periph<RegisterBlock, 1610661888> as Deref>::Target = pac::I2S0::PTR

Pointer to the register block

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

pub const fn ptr() -> *const <Periph<RegisterBlock, 1610661888> as Deref>::Target

Return the pointer to the register block

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

pub const fn regs<'a>() -> &'a <Periph<RegisterBlock, 1610661888> as Deref>::Target

Return a reference to the register block

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

pub fn register_block( &self, ) -> &<Periph<RegisterBlock, 1610661888> as Deref>::Target

Return a reference to the register block

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Trait Implementations§

§

impl<'a> Debug for I2S0<'a>

§

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

Formats the value using the given formatter. Read more
§

impl Instance for I2S0<'_>

Available on soc_has_i2s0 only.
§

impl<'d> TryFrom<AnyI2s<'d>> for I2S0<'d>

Available on soc_has_i2s0 only.
§

type Error = AnyI2s<'d>

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

fn try_from(any: AnyI2s<'d>) -> Result<I2S0<'d>, AnyI2s<'d>>

Performs the conversion.

Auto Trait Implementations§

§

impl<'a> !UnwindSafe for I2S0<'a>

§

impl<'a> Freeze for I2S0<'a>

§

impl<'a> RefUnwindSafe for I2S0<'a>

§

impl<'a> Send for I2S0<'a>

§

impl<'a> Sync for I2S0<'a>

§

impl<'a> Unpin for I2S0<'a>

§

impl<'a> UnsafeUnpin for I2S0<'a>

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> 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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

§

const WITNESS: W = W::MAKE

A constant of the type witness
§

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

§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
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<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.