clean code
This commit is contained in:
@@ -25,25 +25,6 @@ pub const TIM6_UP_REQ: Request = 4; // Table 137: tim6_upd_dma, strana 687 STM32
|
||||
|
||||
static TX_RING: StaticCell<[u32; TX_RING_BYTES]> = StaticCell::new();
|
||||
|
||||
use core::future::poll_fn;
|
||||
use core::task::Poll;
|
||||
|
||||
async fn wait_for_space<'a, W: embassy_stm32::dma::word::Word>(
|
||||
ring: &mut embassy_stm32::dma::WritableRingBuffer<'a, W>,
|
||||
min_free: usize,
|
||||
) {
|
||||
poll_fn(|cx| {
|
||||
let used = ring.len().unwrap_or(0);
|
||||
let cap = ring.capacity();
|
||||
if cap - used > min_free {
|
||||
Poll::Ready(())
|
||||
} else {
|
||||
ring.set_waker(cx.waker());
|
||||
Poll::Pending
|
||||
}
|
||||
}).await
|
||||
}
|
||||
|
||||
#[embassy_executor::main]
|
||||
async fn main(spawner: Spawner) {
|
||||
let p = embassy_stm32::init(Default::default());
|
||||
@@ -87,10 +68,6 @@ async fn main(spawner: Spawner) {
|
||||
info!("tick end");
|
||||
|
||||
let used = encode_uart_frames(TX_PIN_BIT, b"Hello marshmallow\r\n", &mut frame_buf).await;
|
||||
|
||||
// Wait for DMA to free space, async style
|
||||
wait_for_space(&mut tx_ring, used / 2).await;
|
||||
|
||||
if let Err(e) = tx_ring.write_exact(&frame_buf[..used]).await {
|
||||
warn!("DMA ring write error: {:?}", e);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user