embassy_stm32_plus/traits/uart/
uart3.rs

1use embassy_stm32::peripherals::USART3;
2use crate::builder::uart::uart3::rx::{Uart3Rx, Uart3RxBuilder};
3use crate::builder::uart::uart3::tx::{Uart3Tx, Uart3TxBuilder};
4use crate::builder::uart::uart3::Uart3Builder;
5
6/// uart3 trait
7pub trait Uart3Trait {
8    /// create uart3 builder
9    fn builder(self, tx: Uart3Tx, rx: Uart3Rx) -> Uart3Builder;
10
11    /// create uart3 tx builder
12    fn tx_builder(self, tx: Uart3Tx) -> Uart3TxBuilder;
13
14    /// create uart3 rx builder
15    fn rx_builder(self, rx: Uart3Rx) -> Uart3RxBuilder;
16}
17
18/// usart3 support uart3 trait
19impl Uart3Trait for USART3 {
20    #[inline]
21    fn builder(self, tx: Uart3Tx, rx: Uart3Rx) -> Uart3Builder {
22        Uart3Builder::new(self, tx, rx)
23    }
24
25    #[inline]
26    fn tx_builder(self, tx: Uart3Tx) -> Uart3TxBuilder {
27        Uart3TxBuilder::new(self, tx)
28    }
29
30    #[inline]
31    fn rx_builder(self, rx: Uart3Rx) -> Uart3RxBuilder {
32        Uart3RxBuilder::new(self, rx)
33    }
34}