Skip to content

Commit 2b497c1

Browse files
committed
Fix nb on rp uart
1 parent 88e77c7 commit 2b497c1

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

embassy-rp/src/uart/mod.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -820,6 +820,10 @@ impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::ErrorType for Uart<'d, T
820820
impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::Read for UartRx<'d, T, M> {
821821
fn read(&mut self) -> nb::Result<u8, Self::Error> {
822822
let r = T::regs();
823+
if r.uartfr().read().rxfe() {
824+
return Err(nb::Error::WouldBlock);
825+
}
826+
823827
let dr = r.uartdr().read();
824828

825829
if dr.oe() {
@@ -830,10 +834,8 @@ impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::Read for UartRx<'d, T, M
830834
Err(nb::Error::Other(Error::Parity))
831835
} else if dr.fe() {
832836
Err(nb::Error::Other(Error::Framing))
833-
} else if dr.fe() {
834-
Ok(dr.data())
835837
} else {
836-
Err(nb::Error::WouldBlock)
838+
Ok(dr.data())
837839
}
838840
}
839841
}

0 commit comments

Comments
 (0)