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

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

Py32 使用Rust測試獨(dú)立看門狗

獨(dú)立看門狗外設(shè)常用來檢測系統(tǒng)是否死機(jī)、系統(tǒng)卡死、指令跑飛等異常的場景。PY32F030 的獨(dú)立看門狗是一個(gè)獨(dú)立的 12 位向下計(jì)數(shù)器。由 LSI 提供時(shí)鐘。喂狗周期最長達(dá) 32 秒。

示例:examples/embassy_iwdg.rs

#![no_std]
#![no_main]

use py32f030_hal as hal;
use {defmt_rtt as _, panic_probe as _};

use embassy_executor::Spawner;
use embassy_time::Timer;
use hal::iwdg::{Config, IWdg};

#[embassy_executor::main]
asyncfn main(_spawner: Spawner) {
    let p = hal::init(Default::default());
    defmt::info!("Hello World!");

    let config: Config = Default::default();
    defmt::info!("iwdg timeout: {}us", config.timeout_us());
    let iwdg = IWdg::new(p.IWdg, config);
    iwdg.start();

    letmut cnt: u32 = 0;
    loop {
        defmt::info!("time {} ", cnt);
        iwdg.feed();
        cnt += 1;
        // 10 秒內(nèi)喂狗
        if cnt <= 10 {
            Timer::after_millis(1000).await;
        } else {
            // 10秒后等待喂狗超時(shí)
            Timer::after_secs(30).await;
        }
    }
}

運(yùn)行:cargo r --example embassy_iwdg --features embassy

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