Module uart

Module uart 

Source
Expand description

Universal Asynchronous Receiver Transmitter (UART)

See Section 12.1 of the datasheet for more details.

§Usage

See examples/uart.rs for a more complete example.

use fugit::RateExtU32;
use rp235x_hal::{
    self as hal,
    clocks::init_clocks_and_plls,
    gpio::{FunctionUart, Pins},
    pac,
    sio::Sio,
    uart::{self, DataBits, StopBits, UartConfig, UartPeripheral},
    watchdog::Watchdog,
    Clock,
};

const XOSC_CRYSTAL_FREQ: u32 = 12_000_000; // Typically found in BSP crates

let mut peripherals = hal::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_function(), pins.gpio1.into_function());
// 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§

Disabled
UART is disabled.
Enabled
UART is enabled.
Pins
Customizable Uart pinout, allowing you to set the pins individually.
ReadError
When there’s a read error.
Reader
Half of an UartPeripheral that is only capable of reading. Obtained by calling UartPeripheral::split()
UartConfig
A struct holding the configuration for an UART device.
UartPeripheral
An UART Peripheral based on an underlying UART device.
ValidatedPinCts
A runtime validated Cts pin for the given UART.
ValidatedPinRts
A runtime validated Rts pin for the given UART.
ValidatedPinRx
A runtime validated Rx pin for the given UART.
ValidatedPinTx
A runtime validated Tx pin for the given UART.
Writer
Half of an UartPeripheral that is only capable of writing. Obtained by calling UartPeripheral::split()

Enums§

DataBits
Data bits
Error
Error type for UART operations.
FifoWatermark
Rx/Tx FIFO Watermark
Parity
Parity
ReadErrorType
Possible types of read errors.
StopBits
Stop bits

Traits§

State
State of the UART Peripheral.
UartDevice
Trait to handle both underlying devices (UART0 & UART1)
ValidOptionCts
Indicates a valid optional Cts pin for UART0 or UART1
ValidOptionRts
Indicates a valid optional Rts pin for UART0 or UART1
ValidOptionRx
Indicates a valid optional Rx pin for UART0 or UART1
ValidOptionTx
Indicates a valid optional Tx pin for UART0 or UART1
ValidPinCts
Indicates a valid Cts pin the given UART
ValidPinRts
Indicates a valid Rts pin the given UART
ValidPinRx
Indicates a valid Rx pin the given UART
ValidPinTx
Indicates a valid Tx pin the given UART
ValidUartPinout
Declares a valid UART pinout.