Struct grand_central_m4::Pins

source ·
pub struct Pins {
Show 87 fields pub a0: Pin<PA02, Reset>, pub a1: Pin<PA05, Reset>, pub a2: Pin<PB03, Reset>, pub a3: Pin<PC00, Reset>, pub a4: Pin<PC01, Reset>, pub a5: Pin<PC02, Reset>, pub a6: Pin<PC03, Reset>, pub a7: Pin<PB04, Reset>, pub a8: Pin<PB05, Reset>, pub a9: Pin<PB06, Reset>, pub a10: Pin<PB07, Reset>, pub a11: Pin<PB08, Reset>, pub a12: Pin<PB09, Reset>, pub a13: Pin<PA04, Reset>, pub a14: Pin<PA06, Reset>, pub a15: Pin<PA07, Reset>, pub d0: Pin<PB25, Reset>, pub d1: Pin<PB24, Reset>, pub d2: Pin<PC18, Reset>, pub d3: Pin<PC19, Reset>, pub d4: Pin<PC20, Reset>, pub d5: Pin<PC21, Reset>, pub d6: Pin<PD20, Reset>, pub d7: Pin<PD21, Reset>, pub d8: Pin<PB18, Reset>, pub d9: Pin<PB02, Reset>, pub d10: Pin<PB22, Reset>, pub d11: Pin<PB23, Reset>, pub d12: Pin<PB00, Reset>, pub d13: Pin<PB01, Reset>, pub d14: Pin<PB16, Reset>, pub d15: Pin<PB17, Reset>, pub d16: Pin<PC22, Reset>, pub d17: Pin<PC23, Reset>, pub d18: Pin<PB12, Reset>, pub d19: Pin<PB13, Reset>, pub d20: Pin<PB20, Reset>, pub d21: Pin<PB21, Reset>, pub d22: Pin<PD12, Reset>, pub d23: Pin<PA15, Reset>, pub d24: Pin<PC17, Reset>, pub d25: Pin<PC16, Reset>, pub d26: Pin<PA12, Reset>, pub d27: Pin<PA13, Reset>, pub d28: Pin<PA14, Reset>, pub d29: Pin<PB19, Reset>, pub d30: Pin<PA23, Reset>, pub d31: Pin<PA22, Reset>, pub d32: Pin<PA21, Reset>, pub d33: Pin<PA20, Reset>, pub d34: Pin<PA19, Reset>, pub d35: Pin<PA18, Reset>, pub d36: Pin<PA17, Reset>, pub d37: Pin<PA16, Reset>, pub d38: Pin<PB15, Reset>, pub d39: Pin<PB14, Reset>, pub d40: Pin<PC13, Reset>, pub d41: Pin<PC12, Reset>, pub d42: Pin<PC15, Reset>, pub d43: Pin<PC14, Reset>, pub d44: Pin<PC11, Reset>, pub d45: Pin<PC10, Reset>, pub d46: Pin<PC06, Reset>, pub d47: Pin<PC07, Reset>, pub d48: Pin<PC04, Reset>, pub d49: Pin<PC05, Reset>, pub miso: Pin<PD11, Reset>, pub mosi: Pin<PD08, Reset>, pub sclk: Pin<PD09, Reset>, pub d53: Pin<PD10, Reset>, pub flash_d0: Pin<PA08, Reset>, pub flash_d1: Pin<PA09, Reset>, pub flash_d2: Pin<PA10, Reset>, pub flash_d3: Pin<PA11, Reset>, pub flash_sck: Pin<PB10, Reset>, pub flash_cs: Pin<PB11, Reset>, pub neopixel: Pin<PC24, Reset>, pub led_tx: Pin<PC30, Reset>, pub led_rx: Pin<PC31, Reset>, pub sd_mosi: Pin<PB26, Reset>, pub sd_miso: Pin<PB29, Reset>, pub sd_sclk: Pin<PB27, Reset>, pub sd_cs: Pin<PB28, Reset>, pub sd_card_detect: Pin<PB31, Reset>, pub aref: Pin<PA03, Reset>, pub usb_dm: Pin<PA24, Reset>, pub usb_dp: Pin<PA25, Reset>, /* private fields */
}
Expand description

BSP replacement for the HAL Pins type

This type is intended to provide more meaningful names for the given pins.

Fields§

§a0: Pin<PA02, Reset>

Analog pin 0 Can act as a true analog output as it has a DAC (which is not currently supported by this hal) as well as input.

§a1: Pin<PA05, Reset>

Analog pin 1 Can act as a true analog output as it has a DAC (which is not currently supported by this hal) as well as input.

§a2: Pin<PB03, Reset>

Analog pin 2

§a3: Pin<PC00, Reset>

Analog pin 3

§a4: Pin<PC01, Reset>

Analog pin 4

§a5: Pin<PC02, Reset>

Analog pin 5

§a6: Pin<PC03, Reset>

Analog pin 6

§a7: Pin<PB04, Reset>

Analog pin 7

§a8: Pin<PB05, Reset>

Analog pin 8

§a9: Pin<PB06, Reset>

Analog pin 9

§a10: Pin<PB07, Reset>

Analog pin 10

§a11: Pin<PB08, Reset>

Analog pin 11

§a12: Pin<PB09, Reset>

Analog pin 12

§a13: Pin<PA04, Reset>

Analog pin 13

§a14: Pin<PA06, Reset>

Analog pin 14

§a15: Pin<PA07, Reset>

Analog pin 15

§d0: Pin<PB25, Reset>

Digital pin 0, rx This field can also be accessed using the pin_alias! macro with the following alternate names:

uart_rx,

§d1: Pin<PB24, Reset>

Digital pin 1, tx This field can also be accessed using the pin_alias! macro with the following alternate names:

uart_tx,

§d2: Pin<PC18, Reset>

Digital pin 2

§d3: Pin<PC19, Reset>

Digital pin 3

§d4: Pin<PC20, Reset>

Digital pin 4

§d5: Pin<PC21, Reset>

Digital pin 5

§d6: Pin<PD20, Reset>

Digital pin 6

§d7: Pin<PD21, Reset>

Digital pin 7

§d8: Pin<PB18, Reset>

Digital pin 8

§d9: Pin<PB02, Reset>

Digital pin 9

§d10: Pin<PB22, Reset>

Digital pin 10

§d11: Pin<PB23, Reset>

Digital pin 11

§d12: Pin<PB00, Reset>

Digital pin 12

§d13: Pin<PB01, Reset>

Digital pin 13, red LED This field can also be accessed using the pin_alias! macro with the following alternate names:

red_led,

§d14: Pin<PB16, Reset>

Digital pin 14, tx3 This field can also be accessed using the pin_alias! macro with the following alternate names:

uart_tx3,

§d15: Pin<PB17, Reset>

Digital pin 15, rx3 This field can also be accessed using the pin_alias! macro with the following alternate names:

uart_rx3,

§d16: Pin<PC22, Reset>

Digital pin 16, tx2 This field can also be accessed using the pin_alias! macro with the following alternate names:

uart_tx2,

§d17: Pin<PC23, Reset>

Digital pin 17, rx2 This field can also be accessed using the pin_alias! macro with the following alternate names:

uart_rx2,

§d18: Pin<PB12, Reset>

Digital pin 18, tx1 This field can also be accessed using the pin_alias! macro with the following alternate names:

uart_tx1,

§d19: Pin<PB13, Reset>

Digital pin 19, rx1 This field can also be accessed using the pin_alias! macro with the following alternate names:

uart_rx1,

§d20: Pin<PB20, Reset>

Digital pin 20, I2C data line This field can also be accessed using the pin_alias! macro with the following alternate names:

sda,

§d21: Pin<PB21, Reset>

Digital pin 21, I2C clock line This field can also be accessed using the pin_alias! macro with the following alternate names:

scl,

§d22: Pin<PD12, Reset>

Digital pin 22

§d23: Pin<PA15, Reset>

Digital pin 23

§d24: Pin<PC17, Reset>

Digital pin 24, I2C clock line 1 This field can also be accessed using the pin_alias! macro with the following alternate names:

scl1,

§d25: Pin<PC16, Reset>

Digital pin 25, I2C data line 1 This field can also be accessed using the pin_alias! macro with the following alternate names:

sda1,

§d26: Pin<PA12, Reset>

Digital pin 26

§d27: Pin<PA13, Reset>

Digital pin 27

§d28: Pin<PA14, Reset>

Digital pin 28

§d29: Pin<PB19, Reset>

Digital pin 29

§d30: Pin<PA23, Reset>

Digital pin 30

§d31: Pin<PA22, Reset>

Digital pin 31

§d32: Pin<PA21, Reset>

Digital pin 32

§d33: Pin<PA20, Reset>

Digital pin 33

§d34: Pin<PA19, Reset>

Digital pin 34

§d35: Pin<PA18, Reset>

Digital pin 35

§d36: Pin<PA17, Reset>

Digital pin 36

§d37: Pin<PA16, Reset>

Digital pin 37

§d38: Pin<PB15, Reset>

Digital pin 38

§d39: Pin<PB14, Reset>

Digital pin 39

§d40: Pin<PC13, Reset>

Digital pin 40

§d41: Pin<PC12, Reset>

Digital pin 41

§d42: Pin<PC15, Reset>

Digital pin 42

§d43: Pin<PC14, Reset>

Digital pin 43

§d44: Pin<PC11, Reset>

Digital pin 44

§d45: Pin<PC10, Reset>

Digital pin 45

§d46: Pin<PC06, Reset>

Digital pin 46

§d47: Pin<PC07, Reset>

Digital pin 47

§d48: Pin<PC04, Reset>

Digital pin 48

§d49: Pin<PC05, Reset>

Digital pin 49

§miso: Pin<PD11, Reset>

Digital pin 50, SPI MISO This field can also be accessed using the pin_alias! macro with the following alternate names:

miso,

§mosi: Pin<PD08, Reset>

Digital pin 51, SPI MOSI This field can also be accessed using the pin_alias! macro with the following alternate names:

mosi,

§sclk: Pin<PD09, Reset>

Digital pin 52, SPI SCLK This field can also be accessed using the pin_alias! macro with the following alternate names:

sclk,

§d53: Pin<PD10, Reset>

Digital pin 53

§flash_d0: Pin<PA08, Reset>

Flash data 0 This field can also be accessed using the pin_alias! macro with the following alternate names:

flash_d0,

§flash_d1: Pin<PA09, Reset>

Flash data 1 This field can also be accessed using the pin_alias! macro with the following alternate names:

flash_d1,

§flash_d2: Pin<PA10, Reset>

Flash data 2 This field can also be accessed using the pin_alias! macro with the following alternate names:

flash_d2,

§flash_d3: Pin<PA11, Reset>

Flash data 3 This field can also be accessed using the pin_alias! macro with the following alternate names:

flash_d3,

§flash_sck: Pin<PB10, Reset>

SPI clock for the external flash This field can also be accessed using the pin_alias! macro with the following alternate names:

flash_sclk,

§flash_cs: Pin<PB11, Reset>

SPI chip select for the external flash This field can also be accessed using the pin_alias! macro with the following alternate names:

flash_cs,

§neopixel: Pin<PC24, Reset>

Neopixel data

§led_tx: Pin<PC30, Reset>

tx LED

§led_rx: Pin<PC31, Reset>

rx LED

§sd_mosi: Pin<PB26, Reset>

SD card SPI MOSI This field can also be accessed using the pin_alias! macro with the following alternate names:

sd_mosi,

§sd_miso: Pin<PB29, Reset>

SD card SPI MISO This field can also be accessed using the pin_alias! macro with the following alternate names:

sd_miso,

§sd_sclk: Pin<PB27, Reset>

SD card SPI SCLK This field can also be accessed using the pin_alias! macro with the following alternate names:

sd_sclk,

§sd_cs: Pin<PB28, Reset>

SD card SPI chip select This field can also be accessed using the pin_alias! macro with the following alternate names:

sd_cs,

§sd_card_detect: Pin<PB31, Reset>

SD card detect This field can also be accessed using the pin_alias! macro with the following alternate names:

sd_card_detect,

§aref: Pin<PA03, Reset>

AREF pin - has 1uF capacitor to ground

§usb_dm: Pin<PA24, Reset>

The USB D- pad This field can also be accessed using the pin_alias! macro with the following alternate names:

usb_dm,

§usb_dp: Pin<PA25, Reset>

The USB D+ pad This field can also be accessed using the pin_alias! macro with the following alternate names:

usb_dp,

Implementations§

source§

impl Pins

source

pub fn new(port: PORT) -> Self

Take ownership of the PAC [PORT] and split it into discrete [Pin]s.

This struct serves as a replacement for the HAL Pins struct. It is intended to provide more meaningful names for each [Pin] in a BSP. Any [Pin] not defined by the BSP is dropped.

PORT Pin Pins

source

pub unsafe fn port(&mut self) -> PORT

Take the PAC [PORT]

The [PORT] can only be taken once. Subsequent calls to this function will panic.

Safety

Direct access to the [PORT] could allow you to invalidate the compiler’s type-level tracking, so it is unsafe.

PORT

Auto Trait Implementations§

§

impl RefUnwindSafe for Pins

§

impl Send for Pins

§

impl !Sync for Pins

§

impl Unpin for Pins

§

impl UnwindSafe for Pins

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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.

source§

impl<T, U> Into<U> for Twhere 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<T> for T

§

type Output = T

Should always be Self
source§

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

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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.