#![no_std]
#![no_main]
use defmt::Debug2Format;
use hal::usart::AnyUsart;
use heapless::String;
use py32f030_hal::{self as hal, mode::Async};
use {defmt_rtt as _, panic_probe as _};
use embassy_executor::Spawner;
use embassy_time::Timer;
#[embassy_executor::main]
async fn main(_spawner: Spawner) {
let p = hal::init(Default::default());
let gpioa = p.GPIOA.split();
let rx = gpioa.PA10;
let tx = gpioa.PA9;
let usart: AnyUsart<_, Async> =
AnyUsart::new(p.USART1, Some(rx), Some(tx), None, None, Default::default());
let (mut rx, mut tx) = usart.split();
defmt::info!("usart start...");
let buf: String<20> = "hello rust\r\n".into();
let mut rx_buf: [u8; 10] = [0; 10];
loop {
let rst = rx.read(&mut rx_buf).await;
let rst = tx.write(buf.as_bytes()).await;
defmt::info!("send: rst:{} {:x} ", Debug2Format(&rst), buf.as_bytes());
Timer::after_secs(1).await;
}
}