Trait serpente::sercom::v2::uart::RxpoTxpo

source ·
pub trait RxpoTxpo {
    const RXPO: u8;
    const TXPO: u8;
}
Expand description

Configure the RXPO and TXPO fields based on a set of Pads

According to the datasheet, the RXPO and TXPO values specify which SERCOM pads are used for various functions. Moreover, depending on which pads are actually in use, only certain combinations of these values make sense and are valid.

This trait is implemented for valid, four-tuple combinations of OptionalPadNums. Those implementations are then lifted to the corresponding Pads types.

To satisfy this trait, the combination of OptionalPadNums must specify PadNum for at least one of RX and TX. Furthermore, no two PadNums can conflict.

Required Associated Constants§

source

const RXPO: u8

RXPO field value

source

const TXPO: u8

RXPO field value

Implementations on Foreign Types§

source§

impl RxpoTxpo for (NoneT, Pad2, NoneT, Pad3)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 1u8

source§

impl RxpoTxpo for (Pad1, NoneT, NoneT, Pad3)

source§

const RXPO: u8 = 1u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (NoneT, Pad0, NoneT, NoneT)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad0, NoneT, Pad2, Pad3)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 2u8

source§

impl RxpoTxpo for (NoneT, Pad0, Pad2, Pad3)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 2u8

source§

impl RxpoTxpo for (Pad1, NoneT, Pad2, NoneT)

source§

const RXPO: u8 = 1u8

source§

const TXPO: u8 = 2u8

source§

impl RxpoTxpo for (Pad3, Pad2, NoneT, NoneT)

source§

const RXPO: u8 = 3u8

source§

const TXPO: u8 = 1u8

source§

impl RxpoTxpo for (NoneT, Pad2, NoneT, NoneT)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 1u8

source§

impl RxpoTxpo for (Pad1, Pad2, NoneT, NoneT)

source§

const RXPO: u8 = 1u8

source§

const TXPO: u8 = 1u8

source§

impl RxpoTxpo for (NoneT, Pad0, NoneT, Pad3)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (NoneT, Pad0, Pad2, NoneT)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 2u8

source§

impl RxpoTxpo for (Pad0, Pad2, NoneT, NoneT)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 1u8

source§

impl RxpoTxpo for (Pad0, NoneT, NoneT, NoneT)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad0, Pad2, NoneT, Pad3)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 1u8

source§

impl RxpoTxpo for (Pad2, Pad0, NoneT, NoneT)

source§

const RXPO: u8 = 2u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad0, NoneT, NoneT, Pad3)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad1, Pad0, NoneT, Pad3)

source§

const RXPO: u8 = 1u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad2, Pad0, NoneT, Pad3)

source§

const RXPO: u8 = 2u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad3, Pad0, NoneT, NoneT)

source§

const RXPO: u8 = 3u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad0, NoneT, Pad2, NoneT)

source§

const RXPO: u8 = 0u8

source§

const TXPO: u8 = 2u8

source§

impl RxpoTxpo for (Pad2, NoneT, NoneT, Pad3)

source§

const RXPO: u8 = 2u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad1, NoneT, NoneT, NoneT)

source§

const RXPO: u8 = 1u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad1, Pad0, Pad2, NoneT)

source§

const RXPO: u8 = 1u8

source§

const TXPO: u8 = 2u8

source§

impl RxpoTxpo for (Pad3, NoneT, Pad2, NoneT)

source§

const RXPO: u8 = 3u8

source§

const TXPO: u8 = 2u8

source§

impl RxpoTxpo for (Pad1, Pad0, NoneT, NoneT)

source§

const RXPO: u8 = 1u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad2, NoneT, NoneT, NoneT)

source§

const RXPO: u8 = 2u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad3, NoneT, NoneT, NoneT)

source§

const RXPO: u8 = 3u8

source§

const TXPO: u8 = 0u8

source§

impl RxpoTxpo for (Pad1, NoneT, Pad2, Pad3)

source§

const RXPO: u8 = 1u8

source§

const TXPO: u8 = 2u8

source§

impl RxpoTxpo for (Pad1, Pad2, NoneT, Pad3)

source§

const RXPO: u8 = 1u8

source§

const TXPO: u8 = 1u8

source§

impl RxpoTxpo for (Pad1, Pad0, Pad2, Pad3)

source§

const RXPO: u8 = 1u8

source§

const TXPO: u8 = 2u8

source§

impl RxpoTxpo for (Pad3, Pad0, Pad2, NoneT)

source§

const RXPO: u8 = 3u8

source§

const TXPO: u8 = 2u8

Implementors§

source§

impl<S, RX, TX, RTS, CTS> RxpoTxpo for Pads<S, RX, TX, RTS, CTS>where S: Sercom, RX: OptionalPad, TX: OptionalPad, RTS: OptionalPad, CTS: OptionalPad, (<RX as OptionalPad>::PadNum, <TX as OptionalPad>::PadNum, <RTS as OptionalPad>::PadNum, <CTS as OptionalPad>::PadNum): RxpoTxpo,

Lift the implementations of RxpoTxpo from four-tuples of OptionalPadNums to the corresponding Pads types.

source§

const RXPO: u8 = <(RX::PadNum, TX::PadNum, RTS::PadNum, CTS::PadNum)>::RXPO

source§

const TXPO: u8 = <(RX::PadNum, TX::PadNum, RTS::PadNum, CTS::PadNum)>::TXPO