Crate rp_pico

Source
Expand description

A Hardware Abstraction Layer for the Raspberry Pi Pico.

This crate serves as a HAL (Hardware Abstraction Layer) for the Raspberry Pi Pico. Since the Raspberry Pi Pico is based on the RP2040 chip, it re-exports the rp2040_hal crate which contains the tooling to work with the rp2040 chip.

§Examples:

The following example turns on the onboard LED. Note that most of the logic works through the rp2040_hal crate.

#![no_main]
use rp_pico::entry;
use panic_halt as _;
use embedded_hal::digital::v2::OutputPin;
use rp_pico::hal::pac;
use rp_pico::hal;
#[entry]
fn does_not_have_to_be_main() -> ! {
  let mut pac = pac::Peripherals::take().unwrap();
  let sio = hal::Sio::new(pac.SIO);
  let pins = rp_pico::Pins::new(
       pac.IO_BANK0,
       pac.PADS_BANK0,
       sio.gpio_bank0,
       &mut pac.RESETS,
  );
  let mut led_pin = pins.led.into_push_pull_output();
  led_pin.set_high().unwrap();
  loop {
  }
}

Re-exports§

pub extern crate rp2040_hal as hal;
pub use hal::pac;

Structs§

Pins
BSP replacement for the HAL Pins type

Constants§

XOSC_CRYSTAL_FREQ

Statics§

BOOT2_FIRMWARE
The linker will place this boot block at the start of our program image. We need this to help the ROM bootloader get our code up and running.

Type Aliases§

Gp0I2C0Sda
I2C Function alias for pin crate::Pins::gpio0. Alias for a configured Pin
Gp0Pio0
PIO0 Function alias for pin crate::Pins::gpio0. Alias for a configured Pin
Gp0Pio1
PIO1 Function alias for pin crate::Pins::gpio0. Alias for a configured Pin
Gp0Pwm0A
PWM Function alias for pin crate::Pins::gpio0. Alias for a configured Pin
Gp0Spi0Rx
SPI Function alias for pin crate::Pins::gpio0. Alias for a configured Pin
Gp0Uart0Tx
UART Function alias for pin crate::Pins::gpio0. Alias for a configured Pin
Gp1I2C0Scl
I2C Function alias for pin crate::Pins::gpio1. Alias for a configured Pin
Gp1Pio0
PIO0 Function alias for pin crate::Pins::gpio1. Alias for a configured Pin
Gp1Pio1
PIO1 Function alias for pin crate::Pins::gpio1. Alias for a configured Pin
Gp1Pwm0B
PWM Function alias for pin crate::Pins::gpio1. Alias for a configured Pin
Gp1Spi0Csn
SPI Function alias for pin crate::Pins::gpio1. Alias for a configured Pin
Gp1Uart0Rx
UART Function alias for pin crate::Pins::gpio1. Alias for a configured Pin
Gp2I2C1Sda
I2C Function alias for pin crate::Pins::gpio2. Alias for a configured Pin
Gp2Pio0
PIO0 Function alias for pin crate::Pins::gpio2. Alias for a configured Pin
Gp2Pio1
PIO1 Function alias for pin crate::Pins::gpio2. Alias for a configured Pin
Gp2Pwm1A
PWM Function alias for pin crate::Pins::gpio2. Alias for a configured Pin
Gp2Spi0Sck
SPI Function alias for pin crate::Pins::gpio2. Alias for a configured Pin
Gp2Uart0Cts
UART Function alias for pin crate::Pins::gpio2. Alias for a configured Pin
Gp3I2C1Scl
I2C Function alias for pin crate::Pins::gpio3. Alias for a configured Pin
Gp3Pio0
PIO0 Function alias for pin crate::Pins::gpio3. Alias for a configured Pin
Gp3Pio1
PIO1 Function alias for pin crate::Pins::gpio3. Alias for a configured Pin
Gp3Pwm1B
PWM Function alias for pin crate::Pins::gpio3. Alias for a configured Pin
Gp3Spi0Tx
SPI Function alias for pin crate::Pins::gpio3. Alias for a configured Pin
Gp3Uart0Rts
UART Function alias for pin crate::Pins::gpio3. Alias for a configured Pin
Gp4I2C0Sda
I2C Function alias for pin crate::Pins::gpio4. Alias for a configured Pin
Gp4Pio0
PIO0 Function alias for pin crate::Pins::gpio4. Alias for a configured Pin
Gp4Pio1
PIO1 Function alias for pin crate::Pins::gpio4. Alias for a configured Pin
Gp4Pwm2A
PWM Function alias for pin crate::Pins::gpio4. Alias for a configured Pin
Gp4Spi0Rx
SPI Function alias for pin crate::Pins::gpio4. Alias for a configured Pin
Gp4Uart1Tx
UART Function alias for pin crate::Pins::gpio4. Alias for a configured Pin
Gp5I2C0Scl
I2C Function alias for pin crate::Pins::gpio5. Alias for a configured Pin
Gp5Pio0
PIO0 Function alias for pin crate::Pins::gpio5. Alias for a configured Pin
Gp5Pio1
PIO1 Function alias for pin crate::Pins::gpio5. Alias for a configured Pin
Gp5Pwm2B
PWM Function alias for pin crate::Pins::gpio5. Alias for a configured Pin
Gp5Spi0Csn
SPI Function alias for pin crate::Pins::gpio5. Alias for a configured Pin
Gp5Uart1Rx
UART Function alias for pin crate::Pins::gpio5. Alias for a configured Pin
Gp6I2C1Sda
I2C Function alias for pin crate::Pins::gpio6. Alias for a configured Pin
Gp6Pio0
PIO0 Function alias for pin crate::Pins::gpio6. Alias for a configured Pin
Gp6Pio1
PIO1 Function alias for pin crate::Pins::gpio6. Alias for a configured Pin
Gp6Pwm3A
PWM Function alias for pin crate::Pins::gpio6. Alias for a configured Pin
Gp6Spi0Sck
SPI Function alias for pin crate::Pins::gpio6. Alias for a configured Pin
Gp6Uart1Cts
UART Function alias for pin crate::Pins::gpio6. Alias for a configured Pin
Gp7I2C1Scl
I2C Function alias for pin crate::Pins::gpio7. Alias for a configured Pin
Gp7Pio0
PIO0 Function alias for pin crate::Pins::gpio7. Alias for a configured Pin
Gp7Pio1
PIO1 Function alias for pin crate::Pins::gpio7. Alias for a configured Pin
Gp7Pwm3B
PWM Function alias for pin crate::Pins::gpio7. Alias for a configured Pin
Gp7Spi0Tx
SPI Function alias for pin crate::Pins::gpio7. Alias for a configured Pin
Gp7Uart1Rts
UART Function alias for pin crate::Pins::gpio7. Alias for a configured Pin
Gp8I2C0Sda
I2C Function alias for pin crate::Pins::gpio8. Alias for a configured Pin
Gp8Pio0
PIO0 Function alias for pin crate::Pins::gpio8. Alias for a configured Pin
Gp8Pio1
PIO1 Function alias for pin crate::Pins::gpio8. Alias for a configured Pin
Gp8Pwm4A
PWM Function alias for pin crate::Pins::gpio8. Alias for a configured Pin
Gp8Spi1Rx
SPI Function alias for pin crate::Pins::gpio8. Alias for a configured Pin
Gp8Uart1Tx
UART Function alias for pin crate::Pins::gpio8. Alias for a configured Pin
Gp9I2C0Scl
I2C Function alias for pin crate::Pins::gpio9. Alias for a configured Pin
Gp9Pio0
PIO0 Function alias for pin crate::Pins::gpio9. Alias for a configured Pin
Gp9Pio1
PIO1 Function alias for pin crate::Pins::gpio9. Alias for a configured Pin
Gp9Pwm4B
PWM Function alias for pin crate::Pins::gpio9. Alias for a configured Pin
Gp9Spi1Csn
SPI Function alias for pin crate::Pins::gpio9. Alias for a configured Pin
Gp9Uart1Rx
UART Function alias for pin crate::Pins::gpio9. Alias for a configured Pin
Gp10I2C1Sda
I2C Function alias for pin crate::Pins::gpio10. Alias for a configured Pin
Gp10Pio0
PIO0 Function alias for pin crate::Pins::gpio10. Alias for a configured Pin
Gp10Pio1
PIO1 Function alias for pin crate::Pins::gpio10. Alias for a configured Pin
Gp10Pwm5A
PWM Function alias for pin crate::Pins::gpio10. Alias for a configured Pin
Gp10Spi1Sck
SPI Function alias for pin crate::Pins::gpio10. Alias for a configured Pin
Gp10Uart1Cts
UART Function alias for pin crate::Pins::gpio10. Alias for a configured Pin
Gp11I2C1Scl
I2C Function alias for pin crate::Pins::gpio11. Alias for a configured Pin
Gp11Pio0
PIO0 Function alias for pin crate::Pins::gpio11. Alias for a configured Pin
Gp11Pio1
PIO1 Function alias for pin crate::Pins::gpio11. Alias for a configured Pin
Gp11Pwm5B
PWM Function alias for pin crate::Pins::gpio11. Alias for a configured Pin
Gp11Spi1Tx
SPI Function alias for pin crate::Pins::gpio11. Alias for a configured Pin
Gp11Uart1Rts
UART Function alias for pin crate::Pins::gpio11. Alias for a configured Pin
Gp12I2C0Sda
I2C Function alias for pin crate::Pins::gpio12. Alias for a configured Pin
Gp12Pio0
PIO0 Function alias for pin crate::Pins::gpio12. Alias for a configured Pin
Gp12Pio1
PIO1 Function alias for pin crate::Pins::gpio12. Alias for a configured Pin
Gp12Pwm6A
PWM Function alias for pin crate::Pins::gpio12. Alias for a configured Pin
Gp12Spi1Rx
SPI Function alias for pin crate::Pins::gpio12. Alias for a configured Pin
Gp12Uart0Tx
UART Function alias for pin crate::Pins::gpio12. Alias for a configured Pin
Gp13I2C0Scl
I2C Function alias for pin crate::Pins::gpio13. Alias for a configured Pin
Gp13Pio0
PIO0 Function alias for pin crate::Pins::gpio13. Alias for a configured Pin
Gp13Pio1
PIO1 Function alias for pin crate::Pins::gpio13. Alias for a configured Pin
Gp13Pwm6B
PWM Function alias for pin crate::Pins::gpio13. Alias for a configured Pin
Gp13Spi1Csn
SPI Function alias for pin crate::Pins::gpio13. Alias for a configured Pin
Gp13Uart0Rx
UART Function alias for pin crate::Pins::gpio13. Alias for a configured Pin
Gp14I2C1Sda
I2C Function alias for pin crate::Pins::gpio14. Alias for a configured Pin
Gp14Pio0
PIO0 Function alias for pin crate::Pins::gpio14. Alias for a configured Pin
Gp14Pio1
PIO1 Function alias for pin crate::Pins::gpio14. Alias for a configured Pin
Gp14Pwm7A
PWM Function alias for pin crate::Pins::gpio14. Alias for a configured Pin
Gp14Spi1Sck
SPI Function alias for pin crate::Pins::gpio14. Alias for a configured Pin
Gp14Uart0Cts
UART Function alias for pin crate::Pins::gpio14. Alias for a configured Pin
Gp15I2C1Scl
I2C Function alias for pin crate::Pins::gpio15. Alias for a configured Pin
Gp15Pio0
PIO0 Function alias for pin crate::Pins::gpio15. Alias for a configured Pin
Gp15Pio1
PIO1 Function alias for pin crate::Pins::gpio15. Alias for a configured Pin
Gp15Pwm7B
PWM Function alias for pin crate::Pins::gpio15. Alias for a configured Pin
Gp15Spi1Tx
SPI Function alias for pin crate::Pins::gpio15. Alias for a configured Pin
Gp15Uart0Rts
UART Function alias for pin crate::Pins::gpio15. Alias for a configured Pin
Gp16I2C0Sda
I2C Function alias for pin crate::Pins::gpio16. Alias for a configured Pin
Gp16Pio0
PIO0 Function alias for pin crate::Pins::gpio16. Alias for a configured Pin
Gp16Pio1
PIO1 Function alias for pin crate::Pins::gpio16. Alias for a configured Pin
Gp16Pwm0A
PWM Function alias for pin crate::Pins::gpio16. Alias for a configured Pin
Gp16Spi0Rx
SPI Function alias for pin crate::Pins::gpio16. Alias for a configured Pin
Gp16Uart0Tx
UART Function alias for pin crate::Pins::gpio16. Alias for a configured Pin
Gp17I2C0Scl
I2C Function alias for pin crate::Pins::gpio17. Alias for a configured Pin
Gp17Pio0
PIO0 Function alias for pin crate::Pins::gpio17. Alias for a configured Pin
Gp17Pio1
PIO1 Function alias for pin crate::Pins::gpio17. Alias for a configured Pin
Gp17Pwm0B
PWM Function alias for pin crate::Pins::gpio17. Alias for a configured Pin
Gp17Spi0Csn
SPI Function alias for pin crate::Pins::gpio17. Alias for a configured Pin
Gp17Uart0Rx
UART Function alias for pin crate::Pins::gpio17. Alias for a configured Pin
Gp18I2C1Sda
I2C Function alias for pin crate::Pins::gpio18. Alias for a configured Pin
Gp18Pio0
PIO0 Function alias for pin crate::Pins::gpio18. Alias for a configured Pin
Gp18Pio1
PIO1 Function alias for pin crate::Pins::gpio18. Alias for a configured Pin
Gp18Pwm1A
PWM Function alias for pin crate::Pins::gpio18. Alias for a configured Pin
Gp18Spi0Sck
SPI Function alias for pin crate::Pins::gpio18. Alias for a configured Pin
Gp18Uart0Cts
UART Function alias for pin crate::Pins::gpio18. Alias for a configured Pin
Gp19I2C1Scl
I2C Function alias for pin crate::Pins::gpio19. Alias for a configured Pin
Gp19Pio0
PIO0 Function alias for pin crate::Pins::gpio19. Alias for a configured Pin
Gp19Pio1
PIO1 Function alias for pin crate::Pins::gpio19. Alias for a configured Pin
Gp19Pwm1B
PWM Function alias for pin crate::Pins::gpio19. Alias for a configured Pin
Gp19Spi0Tx
SPI Function alias for pin crate::Pins::gpio19. Alias for a configured Pin
Gp19Uart0Rts
UART Function alias for pin crate::Pins::gpio19. Alias for a configured Pin
Gp20I2C0Sda
I2C Function alias for pin crate::Pins::gpio20. Alias for a configured Pin
Gp20Pio0
PIO0 Function alias for pin crate::Pins::gpio20. Alias for a configured Pin
Gp20Pio1
PIO1 Function alias for pin crate::Pins::gpio20. Alias for a configured Pin
Gp20Pwm2A
PWM Function alias for pin crate::Pins::gpio20. Alias for a configured Pin
Gp20Spi0Rx
SPI Function alias for pin crate::Pins::gpio20. Alias for a configured Pin
Gp20Uart1Tx
UART Function alias for pin crate::Pins::gpio20. Alias for a configured Pin
Gp21I2C0Scl
I2C Function alias for pin crate::Pins::gpio21. Alias for a configured Pin
Gp21Pio0
PIO0 Function alias for pin crate::Pins::gpio21. Alias for a configured Pin
Gp21Pio1
PIO1 Function alias for pin crate::Pins::gpio21. Alias for a configured Pin
Gp21Pwm2B
PWM Function alias for pin crate::Pins::gpio21. Alias for a configured Pin
Gp21Spi0Csn
SPI Function alias for pin crate::Pins::gpio21. Alias for a configured Pin
Gp21Uart1Rx
UART Function alias for pin crate::Pins::gpio21. Alias for a configured Pin
Gp22I2C1Sda
I2C Function alias for pin crate::Pins::gpio22. Alias for a configured Pin
Gp22Pio0
PIO0 Function alias for pin crate::Pins::gpio22. Alias for a configured Pin
Gp22Pio1
PIO1 Function alias for pin crate::Pins::gpio22. Alias for a configured Pin
Gp22Pwm3A
PWM Function alias for pin crate::Pins::gpio22. Alias for a configured Pin
Gp22Spi0Sck
SPI Function alias for pin crate::Pins::gpio22. Alias for a configured Pin
Gp22Uart1Cts
UART Function alias for pin crate::Pins::gpio22. Alias for a configured Pin
Gp26I2C1Sda
I2C Function alias for pin crate::Pins::gpio26. Alias for a configured Pin
Gp26Pio0
PIO0 Function alias for pin crate::Pins::gpio26. Alias for a configured Pin
Gp26Pio1
PIO1 Function alias for pin crate::Pins::gpio26. Alias for a configured Pin
Gp26Pwm5A
PWM Function alias for pin crate::Pins::gpio26. Alias for a configured Pin
Gp26Spi1Sck
SPI Function alias for pin crate::Pins::gpio26. Alias for a configured Pin
Gp26Uart1Cts
UART Function alias for pin crate::Pins::gpio26. Alias for a configured Pin
Gp27I2C1Scl
I2C Function alias for pin crate::Pins::gpio27. Alias for a configured Pin
Gp27Pio0
PIO0 Function alias for pin crate::Pins::gpio27. Alias for a configured Pin
Gp27Pio1
PIO1 Function alias for pin crate::Pins::gpio27. Alias for a configured Pin
Gp27Pwm5B
PWM Function alias for pin crate::Pins::gpio27. Alias for a configured Pin
Gp27Spi1Tx
SPI Function alias for pin crate::Pins::gpio27. Alias for a configured Pin
Gp27Uart1Rts
UART Function alias for pin crate::Pins::gpio27. Alias for a configured Pin
Gp28I2C0Sda
I2C Function alias for pin crate::Pins::gpio28. Alias for a configured Pin
Gp28Pio0
PIO0 Function alias for pin crate::Pins::gpio28. Alias for a configured Pin
Gp28Pio1
PIO1 Function alias for pin crate::Pins::gpio28. Alias for a configured Pin
Gp28Pwm6A
PWM Function alias for pin crate::Pins::gpio28. Alias for a configured Pin
Gp28Spi1Rx
SPI Function alias for pin crate::Pins::gpio28. Alias for a configured Pin
Gp28Uart0Tx
UART Function alias for pin crate::Pins::gpio28. Alias for a configured Pin

Attribute Macros§

entry
The entry macro declares the starting function to the linker. This is similar to the main function in console applications.