Skip to main content

UART0

Struct UART0 

#[non_exhaustive]
pub struct UART0<'a> { /* private fields */ }
Expand description

UART0 peripheral singleton

Implementations§

§

impl UART0<'_>

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

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) -> UART0<'_>

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) -> UART0<'_>

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)

Available on crate features unstable only.

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 UART0 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 UART0() {
    // do something
}

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

pub fn disable_peri_interrupt(&self)

Available on crate features unstable only.

Disables the UART0 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 UART0 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 UART0<'_>

pub const PTR: *const <Periph<RegisterBlock, 1610612736> as Deref>::Target = pac::UART0::PTR

Available on crate features unstable only.

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, 1610612736> as Deref>::Target

Available on crate features unstable only.

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, 1610612736> as Deref>::Target

Available on crate features unstable only.

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, 1610612736> as Deref>::Target

Available on crate features unstable only.

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 UART0<'a>

§

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

Formats the value using the given formatter. Read more
§

impl Instance for UART0<'_>

§

impl<'d> TryFrom<AnyUart<'d>> for UART0<'d>

Available on soc_has_uart0 only.
§

type Error = AnyUart<'d>

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

fn try_from(any: AnyUart<'d>) -> Result<UART0<'d>, AnyUart<'d>>

Performs the conversion.

Auto Trait Implementations§

§

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

§

impl<'a> Freeze for UART0<'a>

§

impl<'a> RefUnwindSafe for UART0<'a>

§

impl<'a> Send for UART0<'a>

§

impl<'a> Sync for UART0<'a>

§

impl<'a> Unpin for UART0<'a>

§

impl<'a> UnsafeUnpin for UART0<'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.