software uart lib errors fixed
This commit is contained in:
1
semestralka_1_final_crate/software_uart/.gitignore
vendored
Normal file
1
semestralka_1_final_crate/software_uart/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
target/
|
||||||
@@ -5,15 +5,14 @@ use embassy_stm32::{
|
|||||||
peripherals::GPDMA1_CH1,
|
peripherals::GPDMA1_CH1,
|
||||||
Peri,
|
Peri,
|
||||||
};
|
};
|
||||||
use crate::config::RX_PIN_BIT;
|
|
||||||
use embassy_stm32::dma::{
|
use embassy_stm32::dma::{
|
||||||
ReadableRingBuffer,
|
ReadableRingBuffer,
|
||||||
TransferOptions,
|
TransferOptions,
|
||||||
};
|
};
|
||||||
use crate::config::{RX_OVERSAMPLE, UART_CFG};
|
|
||||||
use crate::decode_uart_samples;
|
use crate::decode_uart_samples;
|
||||||
use embassy_sync::{blocking_mutex::raw::CriticalSectionRawMutex, pipe::Pipe};
|
use embassy_sync::{blocking_mutex::raw::CriticalSectionRawMutex, pipe::Pipe};
|
||||||
use embassy_futures::yield_now;
|
use embassy_futures::yield_now;
|
||||||
|
use crate::UartConfig;
|
||||||
use defmt::info;
|
use defmt::info;
|
||||||
|
|
||||||
// datasheet tabulka 137
|
// datasheet tabulka 137
|
||||||
@@ -26,6 +25,9 @@ pub async fn rx_dma_task(
|
|||||||
register: *mut u8,
|
register: *mut u8,
|
||||||
ring: &'static mut [u8],
|
ring: &'static mut [u8],
|
||||||
pipe_rx: &'static Pipe<CriticalSectionRawMutex, 4096>,
|
pipe_rx: &'static Pipe<CriticalSectionRawMutex, 4096>,
|
||||||
|
rx_pin_bit: u8,
|
||||||
|
rx_oversample: u16,
|
||||||
|
uart_cfg: &'static UartConfig,
|
||||||
) {
|
) {
|
||||||
let mut opts = TransferOptions::default();
|
let mut opts = TransferOptions::default();
|
||||||
opts.half_transfer_ir = true;
|
opts.half_transfer_ir = true;
|
||||||
@@ -50,14 +52,14 @@ pub async fn rx_dma_task(
|
|||||||
let _ = rx.read_exact(&mut raw_chunk).await;
|
let _ = rx.read_exact(&mut raw_chunk).await;
|
||||||
|
|
||||||
for (i, b) in raw_chunk.iter().enumerate() {
|
for (i, b) in raw_chunk.iter().enumerate() {
|
||||||
level_buf[valid_len + i] = ((*b >> RX_PIN_BIT) & 1) as u8;
|
level_buf[valid_len + i] = ((*b >> rx_pin_bit) & 1) as u8;
|
||||||
}
|
}
|
||||||
let current_end = valid_len + CHUNK_SIZE;
|
let current_end = valid_len + CHUNK_SIZE;
|
||||||
|
|
||||||
let (decoded, consumed) = decode_uart_samples(
|
let (decoded, consumed) = decode_uart_samples(
|
||||||
&level_buf[..current_end],
|
&level_buf[..current_end],
|
||||||
RX_OVERSAMPLE,
|
rx_oversample,
|
||||||
&UART_CFG
|
uart_cfg
|
||||||
);
|
);
|
||||||
|
|
||||||
if !decoded.is_empty() {
|
if !decoded.is_empty() {
|
||||||
|
|||||||
Reference in New Issue
Block a user