aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-12-18 18:32:04 +0000
committerGitHub <[email protected]>2023-12-18 18:32:04 +0000
commit4ed7747a98ddd67df52093b3a1ed545b4ed97996 (patch)
tree0848554d50339e0c22a611c7cfd240974f815d8b
parent227ace6c3c923e892060f1de42be57972af0bcc8 (diff)
parent2b497c1e578bd08166bee89de8ae824041fbbc70 (diff)
Merge pull request #2306 from embassy-rs/james/fix-nb
Fix nb on rp uart
-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}