性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

Rust嵌入式
認(rèn)證:普通會員
作者動態(tài)
嵌入式 Rust 開發(fā)推薦安裝的插件
4天前
嵌入式 Rust 如何使用 Timer 外設(shè)
6天前
Py32 如何使用 Rust 開發(fā)CRC 外設(shè)
2星期前
Py32F030 使用Rust驅(qū)動I2C
2星期前
Py32 使用Rust測試獨立看門狗
2星期前

使用 Rust 配置國產(chǎn)單片機時鐘

時鐘配置

時鐘是單片機運行指令的節(jié)拍,時鐘頻率代表著單片機CPU或外設(shè)運行的速度。PY32F030 支持多個時鐘源作為 MCU 的輸入時鐘,分別是

  • HSI,高速內(nèi)部時鐘 (24M)
  • HSE,高速外部時鐘(4~32MHz)
  • LSI,低速內(nèi)部時鐘 (32K)
  • LSE,低速外部時鐘 (32.768K)

系統(tǒng)時鐘也可使用PLL作為時鐘源。PY32F030的內(nèi)部時鐘樹如下。

在 嵌入式C 中,配置單片機的時鐘通常需要非常小心規(guī)劃每個時鐘頻率,且配置正確的時鐘節(jié)點。在 Rust 驅(qū)動中,將時鐘的配置嚴(yán)格按照手冊邏輯,嚴(yán)格對齊依賴關(guān)系。只需要簡單對照時鐘樹框圖或代碼提示即可配置成功。

示例

#![no_std]
#![no_main]

use defmt_rtt as _;
use embedded_hal::digital::v2::ToggleableOutputPin;
use panic_probe as _;

use hal::clock::{self, Mco};
use hal::gpio::{Af, PinAF};
use py32f030_hal as hal;
use py32f030_hal::gpio::{Output, PinIoType, PinSpeed};

#[cortex_m_rt::entry]
fn main() -> ! {
    defmt::println!("examples: clock");
    let p = hal::init(Default::default());
    let gpioa = p.GPIOA.split();

    let _mco_pin = Af::new(
        gpioa.PA1,
        PinAF::AF15,
        PinSpeed::VeryHigh,
        PinIoType::PullUp,
    );
    Mco::select(clock::McoSelect::SysClk, clock::McoDIV::DIV1);

    letmut led = Output::new(gpioa.PA11, PinIoType::PullUp, PinSpeed::VeryHigh);

    cortex_m::asm::delay(1000 * 1000 * 5);
    // let _sysclk = clock::SysClock::>::config().unwrap();
    let _sysclk = clock::SysClock::::config().unwrap();

    // let _sysclk = clock::SysClock::::config().unwrap();

    // PA1 輸出 16M
    // let _sysclk = clock::SysClock::::config().unwrap();

    cortex_m::asm::delay(1000 * 1000 * 5);
    defmt::info!("freq: {}MHZ", clock::sys_core_clock() / 1000 / 1000);

    loop {
        cortex_m::asm::delay(1000 * 1000 * 5);

        let _ = led.toggle();
    }
}

運行:cargo r --example clock

在測試中,還可以將內(nèi)部時鐘通過MCO引腳輸出,通過示波器查看真實的時鐘。

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 3
關(guān)注 13
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧