伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

中科芯CKS32F107XX系列MCU的獨立看門狗介紹

中科芯MCU ? 來源:中科芯MCU ? 2025-11-28 14:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MCU微課堂

CKS32F107XX系列獨立看門狗介紹

第六十七期 2025.11.24

看門狗簡介

中科芯CKS32F107xx系列產品內部提供兩個看門狗定時器單元,獨立型看門狗IWDG(Independent Watchdog)和窗口型看門狗WWDG(Window Watchdog),它們在安全性、時間精確性和使用靈活性方面變現得非常優秀。兩個看門狗定時器單元都可用來檢測由軟件錯誤引起的故障,具體表現為當計數器達到給定的超時值或未能在指定時間窗口內刷新計數器的值,會觸發系統復位。

IWDG由MCU內部獨立RC振蕩器產生的低速時鐘LSI(Low-speed Internal)驅動,因此即使主時鐘發生故障它也仍然有效。而WWDG是由從APB1分頻后得到的時鐘驅動,通過可配置的時間窗口來檢測應用程序非正常的過遲或過早的操作。IWDG最適合應用于那些需要看門狗作為一個在主程序之外,能夠完全獨立工作,并且對時間精度要求較低的場合,比如檢測由程序跑飛或死機引起的故障。WWDG最適合那些需要看門狗在精確計時窗口時間內起作用的應用程序,比如檢測由外部干擾或不可預見的邏輯條件造成的應用程序背離正常運行序列而產生的軟件故障。

IWDG詳細介紹

IWDG通俗的解釋它是一個12位的遞減計數器,當計數器的值從某個值一直減到0的時候,就會產生一個系統復位信號,即IWDG_RESET。如果在計數器沒減到0之前,“刷新”計數器的值,就不會產生復位信號,“刷新”這個動作就是我們經常說的喂狗。IWDG直接由VDD電壓域供電,即使在MCU停止模式和待機模式下仍然能照常工作。

1、IWDG功能框圖解析

下圖是獨立看門狗的功能框圖,分6個部分進行說明。

aadc731e-c8d1-11f0-8c8f-92fbcf53809c.png

① LSI時鐘:IWDG的時鐘由低速時鐘LSI驅動,即使主時鐘發生故障它也仍然有效,非常獨立。這里需要注意的是,由于RC振蕩器的原理和特性(根據溫度和環境會有一定的漂移),所以IWDG的定時時間并不一定非常精確,只適用于對時間精度要求比較低的場合。

② 計數器時鐘和IWDG_PR寄存器:遞減計數器的時鐘由LSI經過一個8位的預分頻器得到,預分頻器寄存器IWDG_PR的值決定分頻因子,分頻因子可以是:4、8、16、32、64、128、256。分頻因子(假設為W)和IWDG_PR值的關系是W = 4 * 2^IWDG_PR。

③ 狀態寄存器IWDG_SR:顧名思義,IWDG_SR表示獨立看門狗模塊的當前狀態,該寄存器只有位0:PVU(Prescaler Value Update)和位1:RVU(Reload Value Update)有效,且只能讀不能寫。PVU置1指示預分頻值的更新正在進行中,更新完成后由硬件置0。RVU置1表示重裝載值的更新正在進行中,更新完畢之后由硬件置0。只有當RVU或PVU等于0的時候才可以進行下一次更新操作。

④ 重載寄存器IWDG_RLR:重載寄存器是一個12位的寄存器,里面裝著要刷新到計數器的值,這個值的大小決定著獨立看門狗的溢出時間。溢出時間Tout(s) = (4 * 2^IWDG_PR) / fIWDG * IWDG_RLR。

⑤ 遞減計數器:IWDG的遞減計數器是一個12位寄存器,設置范圍是0~4095,一個計數器時鐘計數器就減1,當計數器減到0時,IWDG會產生一個系統復位信號IWDG_RESET,讓程序重新啟動運行,如果在計數器減到0之前刷新計數器的值(重新寫入新值),就不會產生復位信號,重新刷新計數器值的這個動作俗稱喂狗。

⑥ 密鑰寄存器IWDG_KR:密鑰寄存器IWDG_KR是獨立看門狗IWDG的一個核心控制寄存器,主要有三種寄存器值對應三種控制效果。

ab42ac1a-c8d1-11f0-8c8f-92fbcf53809c.png

2、IWDG庫函數配置步驟

我們接下來介紹如何驅動CKS32F107xx系列產品的IWDG工作。具體配置步驟如下:

(1)解除寄存器寫保護(向IWDG_KR寫入0x5555)

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //使能寫權限

(2)設置IWDG預分頻因子和重裝載值

void IWDG_SetPrescaler(uint8_t IWDG_Prescaler); //設置IWDG預分頻值

void IWDG_SetReload(uint16_t Reload); //設置IWDG重裝載值

此時可以計算出看門狗溢出時間,比如我們最終設定IWDG_PR值為 4,IWDG_RLR值625,那么就可以得到 Tout = (4 * 2^IWDG_PR) / 40KHz * IWDG_RLR = 64 / 40 * 625 = 1s,看門狗的溢出時間是1s,只要在1s之內,寫入0xAAAA到IWDG_KR,就不會觸發看門狗復位。這里需要提醒大家的是,由于看門狗的時鐘不是準確的40KHz,所以喂狗時間應適當提前。

(3)重載計數值喂狗(向IWDG_KR寫入0xAAAA)

IWDG_ReloadCounter(); //把重裝載寄存器IWDG_RLR的值放到計數器中

(4)開啟看門狗(向IWDG_KR寫入0xCCCC)

IWDG_Enable(); //使能 IWDG

通過上面4個步驟,就可以啟動IWDG獨立看門狗了,之后在程序里面就必須周期性的進行喂狗(一般會使用定時器定時的調用IWDG_ReloadCounter函數),否則將導致系統復位。注意IWDG在一旦開啟,系統運行時就不能再被關閉,想要關閉,只能重啟,并且重啟之后要迅速關閉IWDG。

實驗例程

為本期微課堂配套了一個例子,整體功能如下:

(1)系統上電后,LED會點亮,進入主程序while循環,不執行任何操作,無法執行喂狗程序,IWDG觸發系統復位,可以看到LED在不停的閃爍。

(2)按下USER按鍵,執行喂狗操作,LED常亮。

ac25dac6-c8d1-11f0-8c8f-92fbcf53809c.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    147

    文章

    18994

    瀏覽量

    399998
  • 寄存器
    +關注

    關注

    31

    文章

    5612

    瀏覽量

    130163
  • 定時器
    +關注

    關注

    23

    文章

    3368

    瀏覽量

    124040
  • 獨立看門狗
    +關注

    關注

    0

    文章

    26

    瀏覽量

    4506

原文標題:MCU微課堂|CKS32F107XX系列獨立看門狗介紹

文章出處:【微信號:中科芯MCU,微信公眾號:中科芯MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    中科CKS32F107XX系列MCU的窗口看門狗介紹

    中科CKS32F107xx系列產品內部提供兩個看門狗定時器單元,獨立
    的頭像 發表于 11-28 14:48 ?4176次閱讀
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的窗口<b class='flag-5'>看門狗</b><b class='flag-5'>介紹</b>

    中科CKS32F107XX系列MCU的bxCAN介紹

    CKS32F107xx系列產品的bxCAN支持CAN協議2.0A和2.0B標準。 該CAN 控制器支持最高的通訊速率為1Mb/s;可以自動地接收和發送CAN報文,支持使用標準ID和擴展ID的報文
    的頭像 發表于 01-22 09:06 ?3189次閱讀
    <b class='flag-5'>中科</b><b class='flag-5'>芯</b><b class='flag-5'>CKS32F107XX</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>的bxCAN<b class='flag-5'>介紹</b>

    獨立看門狗(IWDG)的基礎知識

      STM32F10xxx系列內置兩個看門狗(獨立看門狗和窗口看門狗),提供了更高的安全性、時間
    發表于 10-19 17:10 ?5201次閱讀
    <b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>(IWDG)的基礎知識

    STM32中的獨立看門狗和窗口看門狗是什么

    在早期的MCU中是沒有看門狗這種東西的,所以產品就很容易出現死機,跑飛的情況。為了避免這種情況的出現,后期的MCU都集成了看門狗的功能。但是目前看門
    的頭像 發表于 02-20 17:47 ?4514次閱讀
    STM32中的<b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>是什么

    MCU獨立看門狗和窗口看門狗的區別

    早期的MCU沒有看門狗,就容易引起有些產品死機了不能重啟工作。為了避免這個問題,后期的MCU在內部集成了看門狗的功能。
    發表于 03-03 09:18 ?1508次閱讀

    什么是stm32看門狗獨立看門狗和窗口看門狗工作原理解析

    stm32有兩個看門狗獨立看門狗和窗口看門狗,其實兩者的功能是類似的,只是喂狗的限制時間不同。 獨立
    的頭像 發表于 11-06 11:48 ?2.8w次閱讀
    什么是stm32<b class='flag-5'>看門狗</b>?<b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>工作原理解析

    STM32F0xx_看門狗獨立+窗口)配置詳細過程

    STM32F0xx_看門狗獨立+窗口)配置詳細過程
    的頭像 發表于 04-07 14:33 ?4520次閱讀
    STM32<b class='flag-5'>F0xx</b>_<b class='flag-5'>看門狗</b> (<b class='flag-5'>獨立</b>+窗口)配置詳細過程

    MCU獨立看門狗與窗口看門狗的區別

    早期的MCU沒有看門狗,就容易引起有些產品死機了不能重啟工作。為了避免這個問題,后期的MCU在內部集成了看門狗的功能。為了滿足更多使用場景,現在很多
    發表于 10-28 20:06 ?8次下載
    <b class='flag-5'>MCU</b><b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>與窗口<b class='flag-5'>看門狗</b>的區別

    STM32:獨立看門狗、窗口看門狗的配置

    STM32單片機的看門狗獨立看門狗和窗口看門狗之分,這兩者的工作原理卻完全不同。
    發表于 02-08 16:15 ?18次下載
    STM32:<b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>、窗口<b class='flag-5'>看門狗</b>的配置

    STM32中的獨立看門狗和窗口看門狗

    一、前言 在早期的MCU中是沒有看門狗這種東西的,所以產品就很容易出現死機,跑飛的情況。為了避免這種情況的出現,后期的MCU都集成了看門狗的功能。但是目前
    的頭像 發表于 12-22 16:58 ?3234次閱讀

    STM32中的獨立看門狗和窗口看門狗

    在早期的MCU中是沒有看門狗這種東西的,所以產品就很容易出現死機,跑飛的情況。為了避免這種情況的出現,后期的MCU都集成了看門狗的功能。但是目前看門
    的頭像 發表于 01-30 14:38 ?2611次閱讀
    STM32中的<b class='flag-5'>獨立</b><b class='flag-5'>看門狗</b>和窗口<b class='flag-5'>看門狗</b>

    MCU如何集成看門狗的功能

    一、前言 在早期的MCU中是沒有看門狗這種東西的,所以產品就很容易出現死機,跑飛的情況。為了避免這種情況的出現,后期的MCU都集成了看門狗的功能。但是目前
    的頭像 發表于 06-22 09:09 ?3074次閱讀
    <b class='flag-5'>MCU</b>如何集成<b class='flag-5'>看門狗</b>的功能

    CKS32F107xx系列時鐘系統具體配置方法講解

    上一章節對CKS32F107xx系列時鐘做了整體介紹,本章節以使用HSI內部高速時鐘為例對時鐘具體配置方法進行講解。
    的頭像 發表于 05-28 10:05 ?1647次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>時鐘系統具體配置方法講解

    CKS32F107xx系列MCU中ADC介紹

    CKS32F107xx系列產品提供2個12位的模擬/數字轉換器(ADC),每個ADC共用多達16個外部通道,各通道的A/D轉換可以單次、連續、掃描或間斷模式執行。ADC的結果可以左對齊或右對齊方式存儲在16位數據寄存器中。
    的頭像 發表于 06-22 11:04 ?1940次閱讀

    CKS32F107xx系列USART的LIN模式

    CKS32F107xx系列在支持正常USART功能的同時,亦支持LIN(局域互聯網)模式。
    的頭像 發表于 02-18 17:18 ?1217次閱讀
    <b class='flag-5'>CKS32F107xx</b><b class='flag-5'>系列</b>USART的LIN模式