Pass rx pin to right init arg
This commit is contained in:
parent
81f10e136a
commit
21ea98810a
@ -5,8 +5,8 @@ use embassy_hal_common::{into_ref, PeripheralRef};
|
|||||||
use crate::dma::{AnyChannel, Channel};
|
use crate::dma::{AnyChannel, Channel};
|
||||||
use crate::gpio::sealed::Pin;
|
use crate::gpio::sealed::Pin;
|
||||||
use crate::gpio::AnyPin;
|
use crate::gpio::AnyPin;
|
||||||
use crate::{pac, peripherals, Peripheral};
|
|
||||||
use crate::pac::io::vals::{Inover, Outover};
|
use crate::pac::io::vals::{Inover, Outover};
|
||||||
|
use crate::{pac, peripherals, Peripheral};
|
||||||
|
|
||||||
#[cfg(feature = "nightly")]
|
#[cfg(feature = "nightly")]
|
||||||
mod buffered;
|
mod buffered;
|
||||||
@ -180,7 +180,7 @@ impl<'d, T: Instance> UartTx<'d, T, Async> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'d, T: Instance, M: Mode> UartRx<'d, T, M> {
|
impl<'d, T: Instance, M: Mode> UartRx<'d, T, M> {
|
||||||
/// Create a new DMA-enabled UART which can only send data
|
/// Create a new DMA-enabled UART which can only recieve data
|
||||||
pub fn new(
|
pub fn new(
|
||||||
_uart: impl Peripheral<P = T> + 'd,
|
_uart: impl Peripheral<P = T> + 'd,
|
||||||
rx: impl Peripheral<P = impl RxPin<T>> + 'd,
|
rx: impl Peripheral<P = impl RxPin<T>> + 'd,
|
||||||
@ -188,7 +188,7 @@ impl<'d, T: Instance, M: Mode> UartRx<'d, T, M> {
|
|||||||
config: Config,
|
config: Config,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
into_ref!(rx, rx_dma);
|
into_ref!(rx, rx_dma);
|
||||||
Uart::<T, M>::init(Some(rx.map_into()), None, None, None, config);
|
Uart::<T, M>::init(None, Some(rx.map_into()), None, None, config);
|
||||||
Self::new_inner(Some(rx_dma.map_into()))
|
Self::new_inner(Some(rx_dma.map_into()))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -396,28 +396,44 @@ impl<'d, T: Instance + 'd, M: Mode> Uart<'d, T, M> {
|
|||||||
if let Some(pin) = &tx {
|
if let Some(pin) = &tx {
|
||||||
pin.io().ctrl().write(|w| {
|
pin.io().ctrl().write(|w| {
|
||||||
w.set_funcsel(2);
|
w.set_funcsel(2);
|
||||||
w.set_outover(if config.invert_tx { Outover::INVERT } else { Outover::NORMAL });
|
w.set_outover(if config.invert_tx {
|
||||||
|
Outover::INVERT
|
||||||
|
} else {
|
||||||
|
Outover::NORMAL
|
||||||
|
});
|
||||||
});
|
});
|
||||||
pin.pad_ctrl().write(|w| w.set_ie(true));
|
pin.pad_ctrl().write(|w| w.set_ie(true));
|
||||||
}
|
}
|
||||||
if let Some(pin) = &rx {
|
if let Some(pin) = &rx {
|
||||||
pin.io().ctrl().write(|w| {
|
pin.io().ctrl().write(|w| {
|
||||||
w.set_funcsel(2);
|
w.set_funcsel(2);
|
||||||
w.set_inover(if config.invert_rx { Inover::INVERT } else { Inover::NORMAL });
|
w.set_inover(if config.invert_rx {
|
||||||
|
Inover::INVERT
|
||||||
|
} else {
|
||||||
|
Inover::NORMAL
|
||||||
|
});
|
||||||
});
|
});
|
||||||
pin.pad_ctrl().write(|w| w.set_ie(true));
|
pin.pad_ctrl().write(|w| w.set_ie(true));
|
||||||
}
|
}
|
||||||
if let Some(pin) = &cts {
|
if let Some(pin) = &cts {
|
||||||
pin.io().ctrl().write(|w| {
|
pin.io().ctrl().write(|w| {
|
||||||
w.set_funcsel(2);
|
w.set_funcsel(2);
|
||||||
w.set_inover(if config.invert_cts { Inover::INVERT } else { Inover::NORMAL });
|
w.set_inover(if config.invert_cts {
|
||||||
|
Inover::INVERT
|
||||||
|
} else {
|
||||||
|
Inover::NORMAL
|
||||||
|
});
|
||||||
});
|
});
|
||||||
pin.pad_ctrl().write(|w| w.set_ie(true));
|
pin.pad_ctrl().write(|w| w.set_ie(true));
|
||||||
}
|
}
|
||||||
if let Some(pin) = &rts {
|
if let Some(pin) = &rts {
|
||||||
pin.io().ctrl().write(|w| {
|
pin.io().ctrl().write(|w| {
|
||||||
w.set_funcsel(2);
|
w.set_funcsel(2);
|
||||||
w.set_outover(if config.invert_rts { Outover::INVERT } else { Outover::NORMAL });
|
w.set_outover(if config.invert_rts {
|
||||||
|
Outover::INVERT
|
||||||
|
} else {
|
||||||
|
Outover::NORMAL
|
||||||
|
});
|
||||||
});
|
});
|
||||||
pin.pad_ctrl().write(|w| w.set_ie(true));
|
pin.pad_ctrl().write(|w| w.set_ie(true));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user