aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Munns <[email protected]>2023-12-20 14:17:24 +0100
committerJames Munns <[email protected]>2024-01-19 14:02:17 +0100
commitfe172109be8644b1e0d86735f4bd267ef7180c36 (patch)
tree17b8447aa278675ac59f4c8160601e50847eacfe
parent24fc12667dc3b929d4fef633cdf0c1ada9765484 (diff)
A little more cleanup
-rw-r--r--embassy-rp/src/uart/mod.rs5
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() {