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