aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32l1/src/bin/usart.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/examples/stm32l1/src/bin/usart.rs b/examples/stm32l1/src/bin/usart.rs
new file mode 100644
index 000000000..dba79b8b4
--- /dev/null
+++ b/examples/stm32l1/src/bin/usart.rs
@@ -0,0 +1,37 @@
1#![no_std]
2#![no_main]
3
4use cortex_m_rt::entry;
5use defmt::*;
6use embassy_stm32::usart::{Config, Uart};
7use embassy_stm32::{bind_interrupts, peripherals, usart};
8use {defmt_rtt as _, panic_probe as _};
9
10bind_interrupts!(struct Irqs {
11 USART2 => usart::InterruptHandler<peripherals::USART2>;
12});
13
14#[entry]
15fn main() -> ! {
16 info!("Hello World!");
17
18 let p = embassy_stm32::init(Default::default());
19
20 let config = Config::default();
21 let mut usart = Uart::new_blocking(p.USART2, p.PA3, p.PA2, config).unwrap();
22 let desired_baudrate = 9600; // Default is 115200 and 9600 is used as example
23
24 match usart.set_baudrate(desired_baudrate) {
25 Ok(_) => info!("Baud rate set to {}", desired_baudrate),
26 Err(err) => error!("Error setting baudrate to {}: {}", desired_baudrate, err),
27 }
28
29 unwrap!(usart.blocking_write(b"Hello Embassy World!\r\n"));
30 info!("wrote Hello, starting echo");
31
32 let mut buf = [0u8; 1];
33 loop {
34 unwrap!(usart.blocking_read(&mut buf));
35 unwrap!(usart.blocking_write(&buf));
36 }
37}