aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2022-01-01 11:18:17 +0000
committerGitHub <[email protected]>2022-01-01 11:18:17 +0000
commitf9a1c1fb51334af0bba5e7e970e34241f5f15f05 (patch)
tree39a883dcd2da9ff927375cc4502ecd1a0d287279 /examples
parentc20ef419a67746688d6ba85a73016856cee76885 (diff)
parent1028b5c671bbef06ff807a765571f6ca11dbfa8e (diff)
Merge #559
559: USART DMA example for the STM32F7 r=Dirbaio a=olofwalker This small PR adds the USART DMA write an example for the STM32F7. The example has been tested on a Nucleo-f767zi board. Output from `DEFMT_LOG=info cargo run --bin usart_dma` ``` Running `probe-run --chip STM32F767ZITx target/thumbv7em-none-eabihf/debug/usart_dma` (HOST) INFO flashing program (108 pages / 108.00 KiB) (HOST) INFO success! ──────────────────────────────────────────────────────────────────────────────── 0 INFO Hello World! └─ usart_dma::__cortex_m_rt_main @ src/bin/usart_dma.rs:39 1 INFO wrote DMA └─ usart_dma::main_task::task::{generator#0} @ src/bin/usart_dma.rs:31 ``` Co-authored-by: Robert Walker <[email protected]>
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32f7/src/bin/usart_dma.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/stm32f7/src/bin/usart_dma.rs b/examples/stm32f7/src/bin/usart_dma.rs
new file mode 100644
index 000000000..82af0bc22
--- /dev/null
+++ b/examples/stm32f7/src/bin/usart_dma.rs
@@ -0,0 +1,30 @@
1#![no_std]
2#![no_main]
3#![feature(type_alias_impl_trait)]
4
5#[path = "../example_common.rs"]
6mod example_common;
7use core::fmt::Write;
8use embassy::executor::Spawner;
9use embassy_stm32::dma::NoDma;
10use embassy_stm32::usart::{Config, Uart};
11use embassy_stm32::Peripherals;
12use embassy_traits::uart::Write as _Write;
13use example_common::*;
14
15use heapless::String;
16
17#[embassy::main]
18async fn main(_spawner: Spawner, p: Peripherals) {
19 let config = Config::default();
20 let mut usart = Uart::new(p.UART7, p.PA8, p.PA15, p.DMA1_CH1, NoDma, config);
21
22 for n in 0u32.. {
23 let mut s: String<128> = String::new();
24 core::write!(&mut s, "Hello DMA World {}!\r\n", n).unwrap();
25
26 unwrap!(usart.write(s.as_bytes()).await);
27
28 info!("wrote DMA");
29 }
30}