embassy_stm32_plus/builder/uart/uart4/
rx.rs1use embassy_stm32::mode::Async;
2use embassy_stm32::peripherals::{DMA2_CH3, PC11, UART4};
3use embassy_stm32::usart::{Config, ConfigError, UartRx};
4use crate::builder::uart::base::UartBase;
5use crate::builder::uart::uart4::Irqs;
6
7pub struct Uart4RxBuilder {
9 pub base: UartBase<UART4>,
11 pub rx: PC11,
13}
14
15impl Uart4RxBuilder {
17 #[inline]
19 pub fn new(uart: UART4, rx: PC11) -> Self {
20 Self { base: UartBase::new(uart), rx }
21 }
22
23 #[inline]
25 pub fn config(mut self, config: Config) -> Self {
26 self.base.set_config(config);
27 self
28 }
29
30 #[inline]
32 pub fn build(self, rx_dma: DMA2_CH3) -> Result<UartRx<'static, Async>, ConfigError> {
33 UartRx::new(self.base.uart, Irqs, self.rx, rx_dma, self.base.config.unwrap_or_default())
34 }
35}