library now fully functional and working

This commit is contained in:
Priec
2025-11-23 16:01:01 +01:00
parent 3218714d8c
commit 348c4e63d9
2 changed files with 20 additions and 4 deletions

View File

@@ -35,13 +35,14 @@ use dma_gpio::hw_uart_internal::{
driver::uart_task as uart_task_internal, driver::uart_task as uart_task_internal,
usart2, usart2,
}; };
use dma_gpio::software_uart::{ use software_uart::{
debug::dump_tim6_regs, debug::dump_tim6_regs,
decode_uart_samples, decode_uart_samples,
dma_timer::{init_tim6_for_uart, init_tim7_for_uart}, dma_timer::{init_tim6_for_uart, init_tim7_for_uart},
gpio_dma_uart_rx::rx_dma_task, gpio_dma_uart_rx::rx_dma_task,
gpio_dma_uart_tx::tx_dma_task, gpio_dma_uart_tx::tx_dma_task,
}; };
use dma_gpio::config::{TX_PIN_BIT, RX_PIN_BIT};
use {defmt_rtt as _, panic_probe as _}; use {defmt_rtt as _, panic_probe as _};
static PD6_BITS: Channel<CriticalSectionRawMutex, u8, 16384> = Channel::new(); static PD6_BITS: Channel<CriticalSectionRawMutex, u8, 16384> = Channel::new();
@@ -137,13 +138,28 @@ async fn main(spawner: Spawner) {
dump_tim6_regs(); dump_tim6_regs();
let bsrr_ptr = embassy_stm32::pac::GPIOB.bsrr().as_ptr() as *mut u32; // POZOR B REGISTER let bsrr_ptr = embassy_stm32::pac::GPIOB.bsrr().as_ptr() as *mut u32; // POZOR B REGISTER
spawner.spawn(tx_dma_task(p.GPDMA1_CH0, bsrr_ptr, SW_TX_RING.init([0; TX_RING_BYTES]), &PIPE_SW_TX).unwrap()); spawner.spawn(tx_dma_task(
p.GPDMA1_CH0,
bsrr_ptr,
SW_TX_RING.init([0; TX_RING_BYTES]),
&PIPE_SW_TX,
TX_PIN_BIT,
&UART_CFG,
).unwrap());
// EDN OF SOFTWARE UART // EDN OF SOFTWARE UART
let rx_ring = SW_RX_RING.init([0u8; RX_RING_BYTES]); let rx_ring = SW_RX_RING.init([0u8; RX_RING_BYTES]);
let gpio_idr = embassy_stm32::pac::GPIOD.idr().as_ptr() as *mut u8; let gpio_idr = embassy_stm32::pac::GPIOD.idr().as_ptr() as *mut u8;
spawner.spawn(rx_dma_task(p.GPDMA1_CH1, gpio_idr, rx_ring, &PIPE_SW_RX).unwrap()); spawner.spawn(rx_dma_task(
p.GPDMA1_CH1,
gpio_idr,
rx_ring,
&PIPE_SW_RX,
RX_PIN_BIT,
RX_OVERSAMPLE,
&UART_CFG,
).unwrap());
info!("SW UART RX DMA started"); info!("SW UART RX DMA started");
let mut buf = [0u8; 64]; let mut buf = [0u8; 64];

View File

@@ -1,5 +1,5 @@
// src/config.rs // src/config.rs
use crate::software_uart::uart_emulation::{Parity, StopBits, UartConfig}; use software_uart::uart_emulation::{Parity, StopBits, UartConfig};
use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex; use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
use embassy_sync::pipe::Pipe; use embassy_sync::pipe::Pipe;