Merge pull request #2306 from embassy-rs/james/fix-nb

Fix nb on rp uart
This commit is contained in:
Dario Nieuwenhuis 2023-12-18 18:32:04 +00:00 committed by GitHub
commit 4ed7747a98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -820,6 +820,10 @@ impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::ErrorType for Uart<'d, T
impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::Read for UartRx<'d, T, M> { impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::Read for UartRx<'d, T, M> {
fn read(&mut self) -> nb::Result<u8, Self::Error> { fn read(&mut self) -> nb::Result<u8, Self::Error> {
let r = T::regs(); let r = T::regs();
if r.uartfr().read().rxfe() {
return Err(nb::Error::WouldBlock);
}
let dr = r.uartdr().read(); let dr = r.uartdr().read();
if dr.oe() { if dr.oe() {
@ -830,10 +834,8 @@ impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::Read for UartRx<'d, T, M
Err(nb::Error::Other(Error::Parity)) Err(nb::Error::Other(Error::Parity))
} else if dr.fe() { } else if dr.fe() {
Err(nb::Error::Other(Error::Framing)) Err(nb::Error::Other(Error::Framing))
} else if dr.fe() {
Ok(dr.data())
} else { } else {
Err(nb::Error::WouldBlock) Ok(dr.data())
} }
} }
} }