Skip to main content

WakeupConfig

Struct WakeupConfig 

Source
#[non_exhaustive]
pub struct WakeupConfig { /* private fields */ }
Available on crate feature unstable only.
Expand description

Configures whether a pin can wake the chip from sleep.

The wake condition is the interrupt trigger of the pin, which listen and the wait_for family set. A pin that does not listen is not a wakeup source. A pin that listens wakes the chip from light sleep through the digital path, and needs no configuration for that.

§Hold the pad at the level that does not wake the chip

A pad that is already at its wake level when the sleep starts ends the sleep immediately. The configuration of the pin must hold the pad at the other level. Sleep keeps the pull resistors that the pin is configured with, and adds no resistor of its own. A pin with Pull::None and no external resistor therefore floats during the sleep, and a floating pad wakes the chip immediately and every time.

Give a level-triggered wake pin a pull against the level that wakes the chip, or an external resistor. For a pin that wakes the chip on a low level, use an external pull-up.

§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§

Source§

impl WakeupConfig

Source

pub fn with_low_power_path(self, low_power_path: bool) -> Self

Assign the given value to the low_power_path field.

Source

pub fn low_power_path(&self) -> bool

Lets the pin wake the chip while the high-performance GPIO peripheral is powered down.

Deep sleep needs this path, and so does a light sleep that powers the peripheral down. Only low-power pads have such a path.

Sleep entry configures the pad as the low-power path requires, and keeps the pull resistors of the pin in both cases. Before a deep sleep it also holds the pad, because deep sleep powers down the circuit that drives it. A light sleep returns the pad to the digital GPIO peripheral when it ends. After a deep sleep, the boot releases the hold.

Trait Implementations§

Source§

impl Clone for WakeupConfig

Source§

fn clone(&self) -> WakeupConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable)§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for WakeupConfig

Source§

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

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

impl Default for WakeupConfig

Source§

fn default() -> WakeupConfig

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

impl Hash for WakeupConfig

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given [Hasher]. Read more
1.3.0§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given [Hasher]. Read more
Source§

impl PartialEq for WakeupConfig

Source§

fn eq(&self, other: &WakeupConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable)§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for WakeupConfig

Source§

impl Eq for WakeupConfig

Source§

impl StructuralPartialEq for WakeupConfig

Auto Trait Implementations§

§

impl Freeze for WakeupConfig

§

impl RefUnwindSafe for WakeupConfig

§

impl Send for WakeupConfig

§

impl Sync for WakeupConfig

§

impl Unpin for WakeupConfig

§

impl UnsafeUnpin for WakeupConfig

§

impl UnwindSafe for WakeupConfig

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,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

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.