diff options
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/stm32l1/src/bin/usart.rs | 37 |
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 | |||
| 4 | use cortex_m_rt::entry; | ||
| 5 | use defmt::*; | ||
| 6 | use embassy_stm32::usart::{Config, Uart}; | ||
| 7 | use embassy_stm32::{bind_interrupts, peripherals, usart}; | ||
| 8 | use {defmt_rtt as _, panic_probe as _}; | ||
| 9 | |||
| 10 | bind_interrupts!(struct Irqs { | ||
| 11 | USART2 => usart::InterruptHandler<peripherals::USART2>; | ||
| 12 | }); | ||
| 13 | |||
| 14 | #[entry] | ||
| 15 | fn 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 | } | ||
