diff options
| author | James Munns <[email protected]> | 2023-12-20 14:17:24 +0100 |
|---|---|---|
| committer | James Munns <[email protected]> | 2024-01-19 14:02:17 +0100 |
| commit | fe172109be8644b1e0d86735f4bd267ef7180c36 (patch) | |
| tree | 17b8447aa278675ac59f4c8160601e50847eacfe | |
| parent | 24fc12667dc3b929d4fef633cdf0c1ada9765484 (diff) | |
A little more cleanup
| -rw-r--r-- | embassy-rp/src/uart/mod.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/embassy-rp/src/uart/mod.rs b/embassy-rp/src/uart/mod.rs index a89cb5932..998f7ccac 100644 --- a/embassy-rp/src/uart/mod.rs +++ b/embassy-rp/src/uart/mod.rs | |||
| @@ -278,13 +278,16 @@ impl<'d, T: Instance, M: Mode> UartRx<'d, T, M> { | |||
| 278 | 278 | ||
| 279 | /// Read from UART RX blocking execution until done. | 279 | /// Read from UART RX blocking execution until done. |
| 280 | pub fn blocking_read(&mut self, mut buffer: &mut [u8]) -> Result<(), Error> { | 280 | pub fn blocking_read(&mut self, mut buffer: &mut [u8]) -> Result<(), Error> { |
| 281 | while buffer.len() > 0 { | 281 | while !buffer.is_empty() { |
| 282 | let received = self.drain_fifo(buffer).map_err(|(_i, e)| e)?; | 282 | let received = self.drain_fifo(buffer).map_err(|(_i, e)| e)?; |
| 283 | buffer = &mut buffer[received..]; | 283 | buffer = &mut buffer[received..]; |
| 284 | } | 284 | } |
| 285 | Ok(()) | 285 | Ok(()) |
| 286 | } | 286 | } |
| 287 | 287 | ||
| 288 | /// Returns Ok(len) if no errors occurred. Returns Err((len, err)) if an error was | ||
| 289 | /// encountered. in both cases, `len` is the number of *good* bytes copied into | ||
| 290 | /// `buffer`. | ||
| 288 | fn drain_fifo(&mut self, buffer: &mut [u8]) -> Result<usize, (usize, Error)> { | 291 | fn drain_fifo(&mut self, buffer: &mut [u8]) -> Result<usize, (usize, Error)> { |
| 289 | let r = T::regs(); | 292 | let r = T::regs(); |
| 290 | for (i, b) in buffer.iter_mut().enumerate() { | 293 | for (i, b) in buffer.iter_mut().enumerate() { |
