aboutsummaryrefslogtreecommitdiff
path: root/examples/nrf/src/bin/uart.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/nrf/src/bin/uart.rs')
-rw-r--r--examples/nrf/src/bin/uart.rs43
1 files changed, 43 insertions, 0 deletions
diff --git a/examples/nrf/src/bin/uart.rs b/examples/nrf/src/bin/uart.rs
new file mode 100644
index 000000000..e65e2fe51
--- /dev/null
+++ b/examples/nrf/src/bin/uart.rs
@@ -0,0 +1,43 @@
1#![no_std]
2#![no_main]
3#![feature(min_type_alias_impl_trait)]
4#![feature(impl_trait_in_bindings)]
5#![feature(type_alias_impl_trait)]
6#![allow(incomplete_features)]
7
8#[path = "../example_common.rs"]
9mod example_common;
10use example_common::*;
11
12use defmt::panic;
13use embassy::executor::Spawner;
14use embassy::traits::uart::{Read, Write};
15use embassy_nrf::gpio::NoPin;
16use embassy_nrf::{interrupt, uarte, Peripherals};
17
18#[embassy::main]
19async fn main(_spawner: Spawner, p: Peripherals) {
20 let mut config = uarte::Config::default();
21 config.parity = uarte::Parity::EXCLUDED;
22 config.baudrate = uarte::Baudrate::BAUD115200;
23
24 let irq = interrupt::take!(UARTE0_UART0);
25 let mut uart =
26 unsafe { uarte::Uarte::new(p.UARTE0, irq, p.P0_08, p.P0_06, NoPin, NoPin, config) };
27
28 info!("uarte initialized!");
29
30 // Message must be in SRAM
31 let mut buf = [0; 8];
32 buf.copy_from_slice(b"Hello!\r\n");
33
34 unwrap!(uart.write(&buf).await);
35 info!("wrote hello in uart!");
36
37 loop {
38 info!("reading...");
39 unwrap!(uart.read(&mut buf).await);
40 info!("writing...");
41 unwrap!(uart.write(&buf).await);
42 }
43}