stm32/spi: fix blocking transfer hanging after async.

This commit is contained in:
Dario Nieuwenhuis
2022-03-15 04:13:33 +01:00
parent 49ef19c0b2
commit 1dc618f0e4
2 changed files with 20 additions and 0 deletions

View File

@ -68,6 +68,22 @@ async fn main(_spawner: Spawner, p: Peripherals) {
spi.read::<u8>(&mut []).await.unwrap();
spi.write::<u8>(&[]).await.unwrap();
// === Check mixing blocking with async.
spi.blocking_transfer(&mut buf, &data).unwrap();
assert_eq!(buf, data);
spi.transfer(&mut buf, &data).await.unwrap();
assert_eq!(buf, data);
spi.blocking_write(&buf).unwrap();
spi.transfer(&mut buf, &data).await.unwrap();
assert_eq!(buf, data);
spi.blocking_read(&mut buf).unwrap();
spi.blocking_write(&buf).unwrap();
spi.write(&buf).await.unwrap();
spi.read(&mut buf).await.unwrap();
spi.blocking_write(&buf).unwrap();
spi.blocking_read(&mut buf).unwrap();
spi.write(&buf).await.unwrap();
info!("Test OK");
cortex_m::asm::bkpt();
}