42 lines
994 B
Rust
42 lines
994 B
Rust
#![no_std]
|
|
#![no_main]
|
|
|
|
use dma_gpio as _;
|
|
use panic_probe as _;
|
|
use defmt_rtt as _;
|
|
|
|
#[defmt_test::tests]
|
|
mod tests {
|
|
use defmt::assert_eq;
|
|
use dma_gpio::software_uart::uart_emulation::{
|
|
encode_uart_byte_cfg, UartConfig, Parity, StopBits
|
|
};
|
|
|
|
const TX_PIN_BIT: u8 = 2;
|
|
|
|
#[test]
|
|
fn test_encode_8n1() {
|
|
let cfg = UartConfig::default();
|
|
let mut frame = [0u32; 12];
|
|
let used = encode_uart_byte_cfg(TX_PIN_BIT, 0x55, &cfg, &mut frame);
|
|
|
|
assert_eq!(used, 10);
|
|
assert_eq!(frame[0], 1u32 << 18); // Start LOW
|
|
assert_eq!(frame[9], 1u32 << 2); // Stop HIGH
|
|
}
|
|
|
|
#[test]
|
|
fn test_encode_parity() {
|
|
let cfg = UartConfig {
|
|
data_bits: 8,
|
|
parity: Parity::Even,
|
|
stop_bits: StopBits::One,
|
|
};
|
|
|
|
let mut frame = [0u32; 12];
|
|
let used = encode_uart_byte_cfg(TX_PIN_BIT, 0x00, &cfg, &mut frame);
|
|
|
|
assert_eq!(used, 11);
|
|
}
|
|
}
|