aboutsummaryrefslogtreecommitdiff
path: root/embassy-rp/src
diff options
context:
space:
mode:
authorJames Munns <[email protected]>2023-12-18 18:38:13 +0100
committerJames Munns <[email protected]>2023-12-18 18:38:13 +0100
commit2b497c1e578bd08166bee89de8ae824041fbbc70 (patch)
tree1d970997b6274b9a4a4b66197a987e7ef3131e3d /embassy-rp/src
parent88e77c733cc3d52a2bd20e9e25446fe1d37c830b (diff)
Fix nb on rp uart
Diffstat (limited to 'embassy-rp/src')
-rw-r--r--embassy-rp/src/uart/mod.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/embassy-rp/src/uart/mod.rs b/embassy-rp/src/uart/mod.rs
index 18705b141..f82b9036b 100644
--- a/embassy-rp/src/uart/mod.rs
+++ b/embassy-rp/src/uart/mod.rs
@@ -820,6 +820,10 @@ impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::ErrorType for Uart<'d, T
820impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::Read for UartRx<'d, T, M> { 820impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::Read for UartRx<'d, T, M> {
821 fn read(&mut self) -> nb::Result<u8, Self::Error> { 821 fn read(&mut self) -> nb::Result<u8, Self::Error> {
822 let r = T::regs(); 822 let r = T::regs();
823 if r.uartfr().read().rxfe() {
824 return Err(nb::Error::WouldBlock);
825 }
826
823 let dr = r.uartdr().read(); 827 let dr = r.uartdr().read();
824 828
825 if dr.oe() { 829 if dr.oe() {
@@ -830,10 +834,8 @@ impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::Read for UartRx<'d, T, M
830 Err(nb::Error::Other(Error::Parity)) 834 Err(nb::Error::Other(Error::Parity))
831 } else if dr.fe() { 835 } else if dr.fe() {
832 Err(nb::Error::Other(Error::Framing)) 836 Err(nb::Error::Other(Error::Framing))
833 } else if dr.fe() {
834 Ok(dr.data())
835 } else { 837 } else {
836 Err(nb::Error::WouldBlock) 838 Ok(dr.data())
837 } 839 }
838 } 840 }
839} 841}