From c4932c609827e99bb48321ed7d106feb33768a85 Mon Sep 17 00:00:00 2001 From: Benjamin Koch <bbbsnowball@gmail.com> Date: Sat, 13 May 2023 02:04:05 +0200 Subject: [PATCH] read from uart --- firmware/rust1/src/bin/heizung.rs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/firmware/rust1/src/bin/heizung.rs b/firmware/rust1/src/bin/heizung.rs index e80c23c..42f6588 100644 --- a/firmware/rust1/src/bin/heizung.rs +++ b/firmware/rust1/src/bin/heizung.rs @@ -14,10 +14,21 @@ use embassy_rp::peripherals::UART0; use embassy_rp::uart::{self, Async, UartRx, UartTx, Parity}; use {defmt_rtt as _, panic_probe as _}; +#[embassy_executor::task] +async fn reader(mut rx: UartRx<'static, UART0, Async>) { + info!("Reading..."); + loop { + let mut buf = [0; 1]; + match rx.read(&mut buf).await { + Result::Ok(()) => info!("RX {:?}", buf), + Result::Err(e) => info!("RX error {:?}", e), + } + } +} #[embassy_executor::main] -async fn main(_spawner: Spawner) { +async fn main(spawner: Spawner) { let p = embassy_rp::init(Default::default()); // pinout: @@ -71,6 +82,7 @@ async fn main(_spawner: Spawner) { p.DMA_CH1, uart_config, ); + unwrap!(spawner.spawn(reader(uart_rx))); loop { info!("led on!"); @@ -81,8 +93,4 @@ async fn main(_spawner: Spawner) { led_b.set_low(); Timer::after(Duration::from_secs(1)).await; } - - // dummy read to fix Mode paraemter of UartRx - let buf = [0; 1]; - let x = uart_rx.read(&mut buf).await; } -- GitLab