5 releases

0.2.0 Oct 30, 2024
0.1.3 Oct 9, 2024
0.1.2 Sep 23, 2024
0.1.1 Aug 20, 2024
0.1.0 Aug 20, 2024

#623 in Asynchronous

Download history 33/week @ 2024-11-27 43/week @ 2024-12-04 35/week @ 2024-12-11 17/week @ 2024-12-18 24/week @ 2024-12-25 10/week @ 2025-01-01 61/week @ 2025-01-08 85/week @ 2025-01-15 48/week @ 2025-01-22 33/week @ 2025-01-29 58/week @ 2025-02-05 74/week @ 2025-02-12 48/week @ 2025-02-19 45/week @ 2025-02-26 5/week @ 2025-03-05 8/week @ 2025-03-12

120 downloads per month
Used in 4 crates (via sparreal-rt)

MIT/Apache

18KB
401 lines

Arm PL011 驱动

本库实现了PL011 UART驱动的同步和异步接口。

Latest Version Documentation License

示例

Async

use core::ptr::NonNull;

use arm_pl011_rs::{Config, DataBits, Parity, Pl011, StopBits};
use embedded_io_async::*;

pub async fn write() {
    let mut uart = Pl011::new(
        NonNull::new(0x0900_0000 as *mut u8).unwrap(),
        Some(Config {
            baud_rate: 115200,
            clock_freq: 24000000,
            data_bits: DataBits::Bits8,
            stop_bits: StopBits::STOP1,
            parity: Parity::None,
        }),
    )
    .await;

    uart.write_all("uart output\n".as_bytes()).await;
}

Sync

use core::ptr::NonNull;

use arm_pl011_rs::{Config, DataBits, Parity, Pl011, StopBits};
use embedded_io::*;

pub fn write() {
    let mut uart = Pl011::new_sync(
        NonNull::new(0x0900_0000 as *mut u8).unwrap(),
        Some(Config {
            baud_rate: 115200,
            clock_freq: 24000000,
            data_bits: DataBits::Bits8,
            stop_bits: StopBits::STOP1,
            parity: Parity::None,
        }),
    );

    uart.write_all("uart output\n".as_bytes());
}

License

Licensed under Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) or MIT (LICENSE-MIT or http://opensource.org/licenses/MIT)) at your choice.

Dependencies

~260KB