embassy_stm32_plus/traits/uart/
uart1.rs

1use embassy_stm32::peripherals::USART1;
2use crate::builder::uart::uart1::rx::{Uart1Rx, Uart1RxBuilder};
3use crate::builder::uart::uart1::tx::{Uart1Tx, Uart1TxBuilder};
4use crate::builder::uart::uart1::Uart1Builder;
5
6/// uart1 trait
7pub trait Uart1Trait {
8    /// create uart1 builder
9    fn builder(self, tx: Uart1Tx, rx: Uart1Rx) -> Uart1Builder;
10
11    /// create uart1 tx builder
12    fn tx_builder(self,tx: Uart1Tx) -> Uart1TxBuilder;
13
14    /// create uart1 rx builder
15    fn rx_builder(self,rx: Uart1Rx) -> Uart1RxBuilder;
16}
17
18/// usart1 support uart1 trait
19impl Uart1Trait for USART1 {
20    #[inline]
21    fn builder(self, tx: Uart1Tx, rx: Uart1Rx) -> Uart1Builder {
22        Uart1Builder::new(self, tx, rx)
23    }
24
25    #[inline]
26    fn tx_builder(self, tx: Uart1Tx) -> Uart1TxBuilder {
27        Uart1TxBuilder::new(self, tx)
28    }
29
30    #[inline]
31    fn rx_builder(self, rx: Uart1Rx) -> Uart1RxBuilder {
32        Uart1RxBuilder::new(self, rx)
33    }
34}