aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32f4
diff options
context:
space:
mode:
authorAlexandros Liarokapis <[email protected]>2024-05-20 16:15:41 +0300
committerAlexandros Liarokapis <[email protected]>2024-10-16 18:45:27 +0300
commit9f1b6b47916126fba7b5968106b5fd25006fc4c2 (patch)
treea3f54cdf17db6faa2d29e6f940a36dae36bc7322 /examples/stm32f4
parent8af52488e7668897ecdf6a77f76a0003978d04e4 (diff)
Revise I2S interface to ring-buffered.
Diffstat (limited to 'examples/stm32f4')
-rw-r--r--examples/stm32f4/src/bin/i2s_dma.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/examples/stm32f4/src/bin/i2s_dma.rs b/examples/stm32f4/src/bin/i2s_dma.rs
index 27b165f1b..68392847b 100644
--- a/examples/stm32f4/src/bin/i2s_dma.rs
+++ b/examples/stm32f4/src/bin/i2s_dma.rs
@@ -1,13 +1,10 @@
1#![no_std] 1#![no_std]
2#![no_main] 2#![no_main]
3 3
4use core::fmt::Write;
5
6use defmt::*; 4use defmt::*;
7use embassy_executor::Spawner; 5use embassy_executor::Spawner;
8use embassy_stm32::i2s::{Config, I2S}; 6use embassy_stm32::i2s::{Config, I2S};
9use embassy_stm32::time::Hertz; 7use embassy_stm32::time::Hertz;
10use heapless::String;
11use {defmt_rtt as _, panic_probe as _}; 8use {defmt_rtt as _, panic_probe as _};
12 9
13#[embassy_executor::main] 10#[embassy_executor::main]
@@ -15,6 +12,8 @@ async fn main(_spawner: Spawner) {
15 let p = embassy_stm32::init(Default::default()); 12 let p = embassy_stm32::init(Default::default());
16 info!("Hello World!"); 13 info!("Hello World!");
17 14
15 let mut dma_buffer = [0x00_u16; 128];
16
18 let mut i2s = I2S::new_txonly( 17 let mut i2s = I2S::new_txonly(
19 p.SPI2, 18 p.SPI2,
20 p.PC3, // sd 19 p.PC3, // sd
@@ -22,13 +21,13 @@ async fn main(_spawner: Spawner) {
22 p.PB10, // ck 21 p.PB10, // ck
23 p.PC6, // mck 22 p.PC6, // mck
24 p.DMA1_CH4, 23 p.DMA1_CH4,
24 &mut dma_buffer,
25 Hertz(1_000_000), 25 Hertz(1_000_000),
26 Config::default(), 26 Config::default(),
27 ); 27 );
28 28
29 for n in 0u32.. { 29 for i in 0_u16.. {
30 let mut write: String<128> = String::new(); 30 i2s.write(&mut [i * 2; 64]).await.ok();
31 core::write!(&mut write, "Hello DMA World {}!\r\n", n).unwrap(); 31 i2s.write(&mut [i * 2 + 1; 64]).await.ok();
32 i2s.write(&mut write.as_bytes()).await.ok();
33 } 32 }
34} 33}