aboutsummaryrefslogtreecommitdiff
path: root/examples/mimxrt6/src/bin/uart.rs
diff options
context:
space:
mode:
authorRagarnoy <[email protected]>2025-05-21 13:58:57 +0200
committerGitHub <[email protected]>2025-05-21 13:58:57 +0200
commita4676f8b94db9a62752f05595a282afc0fb99288 (patch)
tree248614aec383679d9820eff771e4d5b3e33a0a9f /examples/mimxrt6/src/bin/uart.rs
parentd5c9d1af26e7bd0ebefafba6ae28b0bd660aa924 (diff)
parent7cbc9058bc726900571a7858c581f60cd8cb0266 (diff)
Merge branch 'embassy-rs:main' into stm32h755-intercore
Diffstat (limited to 'examples/mimxrt6/src/bin/uart.rs')
-rw-r--r--examples/mimxrt6/src/bin/uart.rs55
1 files changed, 55 insertions, 0 deletions
diff --git a/examples/mimxrt6/src/bin/uart.rs b/examples/mimxrt6/src/bin/uart.rs
new file mode 100644
index 000000000..d6a75f85d
--- /dev/null
+++ b/examples/mimxrt6/src/bin/uart.rs
@@ -0,0 +1,55 @@
1#![no_std]
2#![no_main]
3
4extern crate embassy_imxrt_examples;
5
6use defmt::info;
7use embassy_executor::Spawner;
8use embassy_imxrt::flexcomm::uart::{Blocking, Uart, UartRx, UartTx};
9use embassy_time::Timer;
10use {defmt_rtt as _, panic_probe as _};
11
12#[embassy_executor::task]
13async fn usart4_task(mut uart: UartRx<'static, Blocking>) {
14 info!("RX Task");
15
16 loop {
17 let mut buf = [0; 8];
18
19 Timer::after_millis(10).await;
20
21 uart.blocking_read(&mut buf).unwrap();
22
23 let s = core::str::from_utf8(&buf).unwrap();
24
25 info!("Received '{}'", s);
26 }
27}
28
29#[embassy_executor::task]
30async fn usart2_task(mut uart: UartTx<'static, Blocking>) {
31 info!("TX Task");
32
33 loop {
34 let buf = "Testing\0".as_bytes();
35
36 uart.blocking_write(buf).unwrap();
37
38 Timer::after_millis(10).await;
39 }
40}
41
42#[embassy_executor::main]
43async fn main(spawner: Spawner) {
44 let p = embassy_imxrt::init(Default::default());
45
46 info!("UART test start");
47
48 let usart4 = Uart::new_blocking(p.FLEXCOMM4, p.PIO0_29, p.PIO0_30, Default::default()).unwrap();
49
50 let (_, usart4) = usart4.split();
51 spawner.must_spawn(usart4_task(usart4));
52
53 let usart2 = UartTx::new_blocking(p.FLEXCOMM2, p.PIO0_15, Default::default()).unwrap();
54 spawner.must_spawn(usart2_task(usart2));
55}