embassy-stm32

Crates

git

Versions

stm32g431kb

Flavors

embassy_stm32::gpio

Trait Pin

Source
pub trait Pin:
    Peripheral<P = Self>
    + Into<AnyPin>
    + SealedPin
    + Sized
    + 'static {
    type ExtiChannel: Channel;

    // Provided methods
    fn pin(&self) -> u8 { ... }
    fn port(&self) -> u8 { ... }
    fn degrade(self) -> AnyPin { ... }
}
Expand description

GPIO pin trait.

Required Associated Types§

Source

type ExtiChannel: Channel

EXTI channel assigned to this pin.

For example, PC4 uses EXTI4.

Provided Methods§

Source

fn pin(&self) -> u8

Number of the pin within the port (0..31)

Source

fn port(&self) -> u8

Port of the pin

Source

fn degrade(self) -> AnyPin

Type-erase (degrade) this pin into an AnyPin.

This converts pin singletons (PA5, PB6, …), which are all different types, into the same type. It is useful for creating arrays of pins, or avoiding generics.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl Pin for PA0

Source§

impl Pin for PA1

Source§

impl Pin for PA2

Source§

impl Pin for PA3

Source§

impl Pin for PA4

Source§

impl Pin for PA5

Source§

impl Pin for PA6

Source§

impl Pin for PA7

Source§

impl Pin for PA8

Source§

impl Pin for PA9

Source§

impl Pin for PA10

Source§

impl Pin for PA11

Source§

impl Pin for PA12

Source§

impl Pin for PA13

Source§

impl Pin for PA14

Source§

impl Pin for PA15

Source§

impl Pin for PB0

Source§

impl Pin for PB3

Source§

impl Pin for PB4

Source§

impl Pin for PB5

Source§

impl Pin for PB6

Source§

impl Pin for PB7

Source§

impl Pin for PB8

Source§

impl Pin for PF0

Source§

impl Pin for PF1

Source§

impl Pin for PG10

Source§

impl Pin for AnyPin