diff options
| author | James Munns <[email protected]> | 2023-12-18 18:38:13 +0100 |
|---|---|---|
| committer | James Munns <[email protected]> | 2023-12-18 18:38:13 +0100 |
| commit | 2b497c1e578bd08166bee89de8ae824041fbbc70 (patch) | |
| tree | 1d970997b6274b9a4a4b66197a987e7ef3131e3d /embassy-rp/src | |
| parent | 88e77c733cc3d52a2bd20e9e25446fe1d37c830b (diff) | |
Fix nb on rp uart
Diffstat (limited to 'embassy-rp/src')
| -rw-r--r-- | embassy-rp/src/uart/mod.rs | 8 |
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 | |||
| 820 | impl<'d, T: Instance, M: Mode> embedded_hal_nb::serial::Read for UartRx<'d, T, M> { | 820 | impl<'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 | } |
