Merge #522
522: stm32/tests: add DMA SPI r=Dirbaio a=Dirbaio Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
This commit is contained in:
		
							
								
								
									
										51
									
								
								tests/stm32/src/bin/spi_dma.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								tests/stm32/src/bin/spi_dma.rs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | |||||||
|  | #![no_std] | ||||||
|  | #![no_main] | ||||||
|  | #![feature(type_alias_impl_trait)] | ||||||
|  |  | ||||||
|  | #[path = "../example_common.rs"] | ||||||
|  | mod example_common; | ||||||
|  | use defmt::assert_eq; | ||||||
|  | use embassy::executor::Spawner; | ||||||
|  | use embassy_stm32::spi::{self, Spi}; | ||||||
|  | use embassy_stm32::time::Hertz; | ||||||
|  | use embassy_stm32::Peripherals; | ||||||
|  | use embassy_traits::spi::FullDuplex; | ||||||
|  | use example_common::*; | ||||||
|  |  | ||||||
|  | #[embassy::main(config = "config()")] | ||||||
|  | async fn main(_spawner: Spawner, p: Peripherals) { | ||||||
|  |     info!("Hello World!"); | ||||||
|  |  | ||||||
|  |     #[cfg(feature = "stm32f429zi")] | ||||||
|  |     let (sck, mosi, miso, tx_dma, rx_dma) = (p.PA5, p.PA7, p.PA6, p.DMA2_CH3, p.DMA2_CH2); | ||||||
|  |     #[cfg(feature = "stm32h755zi")] | ||||||
|  |     let (sck, mosi, miso, tx_dma, rx_dma) = (p.PA5, p.PB5, p.PA6, p.DMA1_CH0, p.DMA1_CH1); | ||||||
|  |     #[cfg(feature = "stm32g491re")] | ||||||
|  |     let (sck, mosi, miso, tx_dma, rx_dma) = (p.PA5, p.PA7, p.PA6, p.DMA1_CH0, p.DMA1_CH1); | ||||||
|  |     #[cfg(feature = "stm32g071rb")] | ||||||
|  |     let (sck, mosi, miso, tx_dma, rx_dma) = (p.PA5, p.PA7, p.PA6, p.DMA1_CH0, p.DMA1_CH1); | ||||||
|  |     #[cfg(feature = "stm32wb55rg")] | ||||||
|  |     let (sck, mosi, miso, tx_dma, rx_dma) = (p.PA5, p.PA7, p.PA6, p.DMA1_CH0, p.DMA1_CH1); | ||||||
|  |  | ||||||
|  |     let mut spi = Spi::new( | ||||||
|  |         p.SPI1, | ||||||
|  |         sck,  // Arduino D13 | ||||||
|  |         mosi, // Arduino D11 | ||||||
|  |         miso, // Arduino D12 | ||||||
|  |         tx_dma, | ||||||
|  |         rx_dma, | ||||||
|  |         Hertz(1_000_000), | ||||||
|  |         spi::Config::default(), | ||||||
|  |     ); | ||||||
|  |  | ||||||
|  |     let data: [u8; 9] = [0x00, 0xFF, 0xAA, 0x55, 0xC0, 0xFF, 0xEE, 0xC0, 0xDE]; | ||||||
|  |  | ||||||
|  |     // Arduino pins D11 and D12 (MOSI-MISO) are connected together with a 1K resistor. | ||||||
|  |     // so we should get the data we sent back. | ||||||
|  |     let mut buf = [0; 9]; | ||||||
|  |     spi.read_write(&mut buf, &data).await.unwrap(); | ||||||
|  |     assert_eq!(buf, data); | ||||||
|  |  | ||||||
|  |     info!("Test OK"); | ||||||
|  |     cortex_m::asm::bkpt(); | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user