only improvements
This commit is contained in:
@@ -14,7 +14,7 @@ use dma_gpio::software_uart::{
|
||||
gpio_dma_uart_rx::rx_dma_task,
|
||||
debug::dump_tim6_regs,
|
||||
};
|
||||
use dma_gpio::config::{BAUD, TX_PIN_BIT, RX_OVERSAMPLE, TX_OVERSAMPLE, UART_CFG};
|
||||
use dma_gpio::config::{BAUD, TX_PIN_BIT, RX_OVERSAMPLE, TX_OVERSAMPLE};
|
||||
use dma_gpio::config::{TX_RING_BYTES, RX_RING_BYTES, PIPE_RX_SIZE};
|
||||
use static_cell::StaticCell;
|
||||
use {defmt_rtt as _, panic_probe as _};
|
||||
@@ -38,14 +38,14 @@ async fn main(spawner: Spawner) {
|
||||
|
||||
// Safe one-time init from StaticCell
|
||||
let rx_ring: &mut [u8; RX_RING_BYTES] = RX_RING.init([0; RX_RING_BYTES]);
|
||||
let tx_ring_mem: &mut [u32; TX_RING_BYTES] =
|
||||
TX_RING.init([0; TX_RING_BYTES]);
|
||||
let tx_ring_mem: &mut [u32; TX_RING_BYTES] = TX_RING.init([0; TX_RING_BYTES]);
|
||||
|
||||
// Spawn tasks
|
||||
spawner.spawn(rx_dma_task(p.GPDMA1_CH1, &PIPE_RX, rx_ring).unwrap());
|
||||
|
||||
// Create and start the TX DMA ring in main.
|
||||
let bsrr_ptr = embassy_stm32::pac::GPIOA.bsrr().as_ptr() as *mut u32;
|
||||
// let bsrr_ptr = embassy_stm32::pac::GPIOA.bsrr().as_ptr() as *mut u32;
|
||||
let odr_ptr = embassy_stm32::pac::GPIOA.odr().as_ptr() as *mut u32;
|
||||
let mut tx_opts = TransferOptions::default();
|
||||
tx_opts.half_transfer_ir = true;
|
||||
tx_opts.complete_transfer_ir = true;
|
||||
@@ -55,7 +55,7 @@ async fn main(spawner: Spawner) {
|
||||
WritableRingBuffer::new(
|
||||
p.GPDMA1_CH0,
|
||||
TIM6_UP_REQ,
|
||||
bsrr_ptr,
|
||||
odr_ptr,
|
||||
tx_ring_mem,
|
||||
tx_opts,
|
||||
)
|
||||
@@ -65,13 +65,15 @@ async fn main(spawner: Spawner) {
|
||||
info!("TX DMA ring started");
|
||||
|
||||
loop {
|
||||
info!("tick start");
|
||||
Timer::after(Duration::from_millis(100)).await;
|
||||
info!("tick end");
|
||||
write_uart_frames_to_ring(
|
||||
&mut tx_ring,
|
||||
TX_PIN_BIT,
|
||||
b"Hello marshmallow\r\n",
|
||||
&UART_CFG,
|
||||
)
|
||||
.await;
|
||||
Timer::after(Duration::from_secs(2)).await;
|
||||
).await;
|
||||
info!("text");
|
||||
Timer::after(Duration::from_secs(1)).await;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user