Skip to content

Commit 4ed7747

Browse files
authored
Merge pull request #2306 from embassy-rs/james/fix-nb
Fix nb on rp uart
2 parents 227ace6 + 2b497c1 commit 4ed7747

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)