[−][src]Module imxrt_iomuxc::imxrt106x
imxrt106x
only.Pads for the i.MX RT 106x processor family
The module exports all of the i.MX RT 106x processor's pads. Pads that can support peripheral
functions are tagged with imxrt-iomuxc
traits.
Example
In the example below, we implement a hypothetical uart_new
function, which is responsible
for preparing a UART peripheral. To properly configure the peripheral, we need the two
pads that represent a peripheral's TX and RX pins. The implementation will use the
imxrt_iomuxc::uart::prepare()
function to prepare the pins.
Note the trait bounds on uart_new
. The usage requires that
- the user provides one TX and one RX pin
- the modules for each pin match
use imxrt_iomuxc as iomuxc; use iomuxc::uart::{Pin, TX, RX}; /// Creates a UART peripheral from the TX and RX pads, and a baud rate fn uart_new<T, R>(mut tx: T, mut rx: R, baud: u32) -> UART where T: Pin<Direction = TX>, R: Pin<Direction = RX, Module = <T as Pin>::Module>, { // Check the imxrt-iomuxc documentation to understand why // this is unsafe. unsafe { iomuxc::uart::prepare(&mut tx); iomuxc::uart::prepare(&mut rx); } // Prepare the rest of the UART peripheral, and return it... } // AD_B0_13 and AD_B0_12 are a suitable pair of UART pins uart_new(ad_b0_12, ad_b0_13, 115_200);
Specifically, the trait bounds guard against non-UART pins:
// Neither pad is a valid UART pin uart_new(ad_b0_10, ad_b0_11, 115_200);
It also guards against mismatched UART pins:
// AD_B1_02 is a UART2 TX pin, but AD_B0_13 is a UART1 RX pin uart_new(ad_b1_02, ad_b0_13, 115_200);
Modules
ad_b0 | imxrt106x Pads with the prefix 'AD_B0' |
ad_b1 | imxrt106x Pads with the prefix 'AD_B1' |
b0 | imxrt106x Pads with the prefix 'B0' |
b1 | imxrt106x Pads with the prefix 'B1' |
emc | imxrt106x Pads with the prefix 'EMC' |
sd_b0 | imxrt106x Pads with the prefix 'SD_B0' |
sd_b1 | imxrt106x Pads with the prefix 'SD_B1' |
Structs
ErasedPads | imxrt106x All of the pads, with all types erased |
Pads | imxrt106x All of the pads |