Skip to content

Commit eac2d82

Browse files
committed
spi: fix SPI DMA example
1 parent 3a5709e commit eac2d82

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

examples/spi-dma.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ use cortex_m_semihosting::debug;
1515
use stm32h5xx_hal::{
1616
pac,
1717
prelude::*,
18-
spi::{self, dma::DuplexDmaTransfer, Config as SpiConfig},
18+
spi::{self, Config as SpiConfig},
1919
};
2020

2121
static mut SOURCE_BYTES: MaybeUninit<[u8; 40]> = MaybeUninit::uninit();
2222
static mut DEST_BYTES: MaybeUninit<[u8; 40]> = MaybeUninit::zeroed();
2323

24-
fn u8_to_u8_sequential() -> (&'static [u8; 40], &'static mut [u8; 40]) {
24+
fn u8_buf_pair() -> (&'static [u8; 40], &'static mut [u8; 40]) {
2525
let buf: &mut [MaybeUninit<u8>; 40] = unsafe {
2626
&mut *(core::ptr::addr_of_mut!(SOURCE_BYTES)
2727
as *mut [MaybeUninit<u8>; 40])
@@ -74,25 +74,25 @@ fn main() -> ! {
7474
log::info!("stm32h5xx-hal example - SPI DMA");
7575

7676
// Initialise the SPI peripheral.
77-
let mut spi = dp.SPI2.spi(
77+
let spi = dp.SPI2.spi(
7878
(sck, miso, mosi),
7979
SpiConfig::new(spi::MODE_0),
8080
1.MHz(),
8181
ccdr.peripheral.SPI2,
8282
&ccdr.clocks,
8383
);
8484

85-
let (source_buf, dest_buf) = u8_to_u8_sequential();
85+
let (source_buf, dest_buf) = u8_buf_pair();
8686

8787
let channels = dp.GPDMA1.channels(ccdr.peripheral.GPDMA1);
8888
let tx_ch = channels.0;
8989
let rx_ch = channels.1;
9090

91-
let mut transfer =
92-
DuplexDmaTransfer::new(&mut spi, tx_ch, rx_ch, source_buf, dest_buf);
93-
transfer.start().unwrap();
94-
transfer.wait_for_complete().unwrap();
95-
let (_, _, source_buf, dest_buf) = transfer.free().unwrap();
91+
let mut spi = spi.use_dma_duplex(tx_ch, rx_ch);
92+
93+
let (tx, rx) = spi.start_dma_duplex_transfer(dest_buf, source_buf).unwrap();
94+
tx.wait_for_transfer_complete().unwrap();
95+
rx.wait_for_transfer_complete().unwrap();
9696

9797
assert_eq!(source_buf, dest_buf);
9898

0 commit comments

Comments
 (0)