aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32f4/src
diff options
context:
space:
mode:
authorGuillaume MICHEL <[email protected]>2022-10-26 18:58:22 +0200
committerDario Nieuwenhuis <[email protected]>2022-10-26 19:06:18 +0200
commit9cac649fcf5a633a89aa1b6e550d641270d14956 (patch)
tree91b07477910a4908867e6125a76dea9a587a2360 /examples/stm32f4/src
parentff76fde299d20c9a3f51a3b89ed69761a2531784 (diff)
stm32: Add support for read_until_idle on UART
Diffstat (limited to 'examples/stm32f4/src')
-rw-r--r--examples/stm32f4/src/bin/usart.rs4
-rw-r--r--examples/stm32f4/src/bin/usart_buffered.rs15
-rw-r--r--examples/stm32f4/src/bin/usart_dma.rs4
3 files changed, 17 insertions, 6 deletions
diff --git a/examples/stm32f4/src/bin/usart.rs b/examples/stm32f4/src/bin/usart.rs
index 90ad882b8..8f41bb6c4 100644
--- a/examples/stm32f4/src/bin/usart.rs
+++ b/examples/stm32f4/src/bin/usart.rs
@@ -5,6 +5,7 @@
5use cortex_m_rt::entry; 5use cortex_m_rt::entry;
6use defmt::*; 6use defmt::*;
7use embassy_stm32::dma::NoDma; 7use embassy_stm32::dma::NoDma;
8use embassy_stm32::interrupt;
8use embassy_stm32::usart::{Config, Uart}; 9use embassy_stm32::usart::{Config, Uart};
9use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
10 11
@@ -15,7 +16,8 @@ fn main() -> ! {
15 let p = embassy_stm32::init(Default::default()); 16 let p = embassy_stm32::init(Default::default());
16 17
17 let config = Config::default(); 18 let config = Config::default();
18 let mut usart = Uart::new(p.USART3, p.PD9, p.PD8, NoDma, NoDma, config); 19 let irq = interrupt::take!(USART3);
20 let mut usart = Uart::new(p.USART3, p.PD9, p.PD8, irq, NoDma, NoDma, config);
19 21
20 unwrap!(usart.blocking_write(b"Hello Embassy World!\r\n")); 22 unwrap!(usart.blocking_write(b"Hello Embassy World!\r\n"));
21 info!("wrote Hello, starting echo"); 23 info!("wrote Hello, starting echo");
diff --git a/examples/stm32f4/src/bin/usart_buffered.rs b/examples/stm32f4/src/bin/usart_buffered.rs
index 7bcecbd26..dd171fe13 100644
--- a/examples/stm32f4/src/bin/usart_buffered.rs
+++ b/examples/stm32f4/src/bin/usart_buffered.rs
@@ -4,9 +4,8 @@
4 4
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_stm32::dma::NoDma;
8use embassy_stm32::interrupt; 7use embassy_stm32::interrupt;
9use embassy_stm32::usart::{BufferedUart, Config, State, Uart}; 8use embassy_stm32::usart::{BufferedUart, Config, State};
10use embedded_io::asynch::BufRead; 9use embedded_io::asynch::BufRead;
11use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
12 11
@@ -16,13 +15,21 @@ async fn main(_spawner: Spawner) {
16 info!("Hello World!"); 15 info!("Hello World!");
17 16
18 let config = Config::default(); 17 let config = Config::default();
19 let usart = Uart::new(p.USART3, p.PD9, p.PD8, NoDma, NoDma, config);
20 18
21 let mut state = State::new(); 19 let mut state = State::new();
22 let irq = interrupt::take!(USART3); 20 let irq = interrupt::take!(USART3);
23 let mut tx_buf = [0u8; 32]; 21 let mut tx_buf = [0u8; 32];
24 let mut rx_buf = [0u8; 32]; 22 let mut rx_buf = [0u8; 32];
25 let mut buf_usart = BufferedUart::new(&mut state, usart, irq, &mut tx_buf, &mut rx_buf); 23 let mut buf_usart = BufferedUart::new(
24 &mut state,
25 p.USART3,
26 p.PD9,
27 p.PD8,
28 irq,
29 &mut tx_buf,
30 &mut rx_buf,
31 config,
32 );
26 33
27 loop { 34 loop {
28 let buf = buf_usart.fill_buf().await.unwrap(); 35 let buf = buf_usart.fill_buf().await.unwrap();
diff --git a/examples/stm32f4/src/bin/usart_dma.rs b/examples/stm32f4/src/bin/usart_dma.rs
index bb41b8b4f..78baeaa0d 100644
--- a/examples/stm32f4/src/bin/usart_dma.rs
+++ b/examples/stm32f4/src/bin/usart_dma.rs
@@ -7,6 +7,7 @@ use core::fmt::Write;
7use defmt::*; 7use defmt::*;
8use embassy_executor::Spawner; 8use embassy_executor::Spawner;
9use embassy_stm32::dma::NoDma; 9use embassy_stm32::dma::NoDma;
10use embassy_stm32::interrupt;
10use embassy_stm32::usart::{Config, Uart}; 11use embassy_stm32::usart::{Config, Uart};
11use heapless::String; 12use heapless::String;
12use {defmt_rtt as _, panic_probe as _}; 13use {defmt_rtt as _, panic_probe as _};
@@ -17,7 +18,8 @@ async fn main(_spawner: Spawner) {
17 info!("Hello World!"); 18 info!("Hello World!");
18 19
19 let config = Config::default(); 20 let config = Config::default();
20 let mut usart = Uart::new(p.USART3, p.PD9, p.PD8, p.DMA1_CH3, NoDma, config); 21 let irq = interrupt::take!(USART3);
22 let mut usart = Uart::new(p.USART3, p.PD9, p.PD8, irq, p.DMA1_CH3, NoDma, config);
21 23
22 for n in 0u32.. { 24 for n in 0u32.. {
23 let mut s: String<128> = String::new(); 25 let mut s: String<128> = String::new();