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,
|
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];
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user