Module rp2040_hal::uart
source · Expand description
Universal Asynchronous Receiver Transmitter (UART)
See Chapter 4 Section 2 of the datasheet for more details
Usage
See examples/uart.rs for a more complete example
use rp2040_hal::{Clock, clocks::init_clocks_and_plls, gpio::{Pins, FunctionUart}, pac, sio::Sio, uart::{self, DataBits, StopBits, UartConfig, UartPeripheral}, watchdog::Watchdog};
use fugit::RateExtU32;
const XOSC_CRYSTAL_FREQ: u32 = 12_000_000; // Typically found in BSP crates
let mut peripherals = pac::Peripherals::take().unwrap();
let sio = Sio::new(peripherals.SIO);
let pins = Pins::new(peripherals.IO_BANK0, peripherals.PADS_BANK0, sio.gpio_bank0, &mut peripherals.RESETS);
let mut watchdog = Watchdog::new(peripherals.WATCHDOG);
let mut clocks = init_clocks_and_plls(XOSC_CRYSTAL_FREQ, peripherals.XOSC, peripherals.CLOCKS, peripherals.PLL_SYS, peripherals.PLL_USB, &mut peripherals.RESETS, &mut watchdog).ok().unwrap();
// Set up UART on GP0 and GP1 (Pico pins 1 and 2)
let pins = (
pins.gpio0.into_mode::<FunctionUart>(),
pins.gpio1.into_mode::<FunctionUart>(),
);
// Need to perform clock init before using UART or it will freeze.
let uart = UartPeripheral::new(peripherals.UART0, pins, &mut peripherals.RESETS)
.enable(
UartConfig::new(9600.Hz(), DataBits::Eight, None, StopBits::One),
clocks.peripheral_clock.freq(),
).unwrap();
uart.write_full_blocking(b"Hello World!\r\n");
Modules
common_configsDeprecated
Common configurations for UART.
Structs
UART is disabled.
UART is enabled.
Customizable Uart pinout, allowing you to set the pins individually.
When there’s a read error.
Half of an
UartPeripheral
that is only capable of reading. Obtained by calling UartPeripheral::split()
A struct holding the configuration for an UART device.
An UART Peripheral based on an underlying UART device.
Half of an
UartPeripheral
that is only capable of writing. Obtained by calling UartPeripheral::split()
Enums
Data bits
Error type for UART operations.
Rx/Tx FIFO Watermark
Parity
The “none” state of parity is represented with the Option type (None).
Possible types of read errors. See Chapter 4, Section 2 §8 - Table 436: “UARTDR Register”
Stop bits
Traits
Indicates a valid CTS pin for UART0 or UART1
Indicates a valid RTS pin for UART0 or UART1
Indicates a valid RX pin for UART0 or UART1
State of the UART Peripheral.
Indicates a valid TX pin for UART0 or UART1
Trait to handle both underlying devices (UART0 & UART1)
Declares a valid UART pinout.