From f819b0d63c4b670f2aef3e8e9b35b0745090052d Mon Sep 17 00:00:00 2001 From: ROMemories <152802150+ROMemories@users.noreply.github.com> Date: Wed, 23 Jul 2025 16:51:33 +0200 Subject: feat(embedded-hal)!: rely on v1.0 traits for `SpiBus` on `BlockingAsync` --- embassy-embedded-hal/src/adapter/blocking_async.rs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'embassy-embedded-hal/src/adapter/blocking_async.rs') diff --git a/embassy-embedded-hal/src/adapter/blocking_async.rs b/embassy-embedded-hal/src/adapter/blocking_async.rs index bafc31583..bc965fbdd 100644 --- a/embassy-embedded-hal/src/adapter/blocking_async.rs +++ b/embassy-embedded-hal/src/adapter/blocking_async.rs @@ -63,16 +63,16 @@ where impl embedded_hal_async::spi::ErrorType for BlockingAsync where - E: embedded_hal_1::spi::Error, - T: blocking::spi::Transfer + blocking::spi::Write, + E: embedded_hal_async::spi::Error, + T: embedded_hal_1::spi::SpiBus, { type Error = E; } impl embedded_hal_async::spi::SpiBus for BlockingAsync where - E: embedded_hal_1::spi::Error + 'static, - T: blocking::spi::Transfer + blocking::spi::Write, + E: embedded_hal_async::spi::Error, + T: embedded_hal_1::spi::SpiBus, { async fn flush(&mut self) -> Result<(), Self::Error> { Ok(()) @@ -84,21 +84,17 @@ where } async fn read(&mut self, data: &mut [u8]) -> Result<(), Self::Error> { - self.wrapped.transfer(data)?; + self.wrapped.read(data)?; Ok(()) } async fn transfer(&mut self, read: &mut [u8], write: &[u8]) -> Result<(), Self::Error> { - // Ensure we write the expected bytes - for i in 0..core::cmp::min(read.len(), write.len()) { - read[i] = write[i].clone(); - } - self.wrapped.transfer(read)?; + self.wrapped.transfer(read, write)?; Ok(()) } async fn transfer_in_place(&mut self, data: &mut [u8]) -> Result<(), Self::Error> { - self.wrapped.transfer(data)?; + self.wrapped.transfer_in_place(data)?; Ok(()) } } -- cgit