library now fully functional and working
This commit is contained in:
@@ -35,13 +35,14 @@ use dma_gpio::hw_uart_internal::{
|
||||
driver::uart_task as uart_task_internal,
|
||||
usart2,
|
||||
};
|
||||
use dma_gpio::software_uart::{
|
||||
use software_uart::{
|
||||
debug::dump_tim6_regs,
|
||||
decode_uart_samples,
|
||||
dma_timer::{init_tim6_for_uart, init_tim7_for_uart},
|
||||
gpio_dma_uart_rx::rx_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 _};
|
||||
|
||||
static PD6_BITS: Channel<CriticalSectionRawMutex, u8, 16384> = Channel::new();
|
||||
@@ -137,13 +138,28 @@ async fn main(spawner: Spawner) {
|
||||
dump_tim6_regs();
|
||||
|
||||
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
|
||||
|
||||
|
||||
let rx_ring = SW_RX_RING.init([0u8; RX_RING_BYTES]);
|
||||
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");
|
||||
|
||||
let mut buf = [0u8; 64];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 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::pipe::Pipe;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user