日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm32 定时器_如何计算STM32定时器、独立看门狗和窗口看门狗

發布時間:2025/3/13 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32 定时器_如何计算STM32定时器、独立看门狗和窗口看门狗 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方藍色字體,關注我們

本博文簡要闡述STM32L011微控制器定時器的參數配置(其他型號大同小異,本文側重講解配置,至于各類定時器的特點后續再述),STM32定時器種類繁多有通用定時器、基本定時器、獨立看門狗定時器、窗口看門狗定時器等。

1

基本、通用類型定時器

STM32基本、通用類型可編程定時器主要由一個 16 位及其相關的自動重載寄存器組成,在配置基本、通用類型的定時器時有三種關鍵寄存器:計數器寄存器 、預分頻器寄存器和自動重載寄存器,具體說明如下所示:

  • 計數器寄存器:

    有遞增計數、遞減計數或同時遞增和遞減計數三類,計數器的時鐘可通過預分頻器進行分頻;

  • 預分頻器寄存器:

    可對計數器時鐘頻率進行分頻,分頻系數介于 1 和 65536 之間(這里指STM32L011);

  • 自動重載寄存器:

    當計數器達到上溢值(或者在遞減計數時達到下溢值)時將發送更新事件,計數器寄存器將裝載重新計數。

假設計數器寄存器數值為0xFC,采用2預分頻,當使能計數器后,定時器時鐘開始按照定時效果運行(定時由計數器寄存器和預分頻器寄存器共同決定),計數器從0x00計數到0xFC后會產生中斷,并更新時間開始新一輪的計數,從0x00計數到0xFC時間的長短由預分頻控制寄存器決定,時序圖如下所示:

?數器寄存器數值為0xFC(十進制:252),采用2預分頻的定時周期計算如下(假設使用32MHZ的時鐘頻率):

由于1HZ是1秒/次的頻率,63492HZ就是,計數器從0x00計數到0xFC,定時周期為63492秒,使用STM32CuBeMX配置如下所示:

假設計數器寄存器數值為0xFC,采用4預分頻,?時序圖如下所示:

數器寄存器數值為0xFC(十進制:252),采用2預分頻的定時周期計算如下(假設使用32MHZ的時鐘頻率):

計數器從0x00計數到0xFC,定時周期為31746秒,使用STM32CuBeMX配置如下所示:

2

獨立看門狗定時器

獨立看門狗定時器激活后,計數器開始從復位值 0xFFF (可通過窗口寄存器修改)遞減計數,當計數器計數到終值 (0x000) 時會產生一個復位信號,在遞減的過程中將鍵值 0x0000 AAAA 寫到密鑰寄存器中,計數器將會重載,從而避免產生看門狗復位,獨立看門狗框圖如下所示:

?獨立看門狗定時器有三種關鍵寄存器:窗口寄存器、預分頻器寄存器和重載寄存器,具體說明如下所示:

  • 窗口寄存器:

    默認值為 0x0000 0FFF(十進制:

    4095),當計數器值大于窗口寄存器中存儲的值時,如果執行重載操作,則會產生復位;

  • 預分頻器寄存器:

    可對計數器時鐘頻率進行分頻,分頻系數最大為256(這里指STM32L011);

  • 重載寄存器:

    當計數器計數到終值 (0x000) 時會產生一個復位信號,計數器寄存器將裝載重新計數。

獨立看門狗定時器時鐘由LSI振蕩器提供,STM32L011中LSI頻率為37KHZ,看門狗定義周期時間的方式和基本、通用類型可編程定時器完全一致,假設定義1秒周期的看門狗定時器,超過1秒不喂狗就進行系統復位,計算方式如下所示:

?當然由于LSI振蕩器精度有限,在運行過程中會存在一定誤差,使用STM32CuBeMX配置如下所示:

3

窗口看門狗定時器?

窗口看門狗定時器是可編程的自由運行遞減計數器,窗口看門狗激活后當遞減計數器值小于 0x40(從 0x40 遞減到 0x3F) 時復位,在窗口閾值之外重載遞減計數器時也會復位,只有在0x40~窗口閾值之間喂狗系統才可以正常運行,窗口定時器時序圖如下所示:

時序圖解析如下所示:

  • T[6:0]:

    7 位計數器,用來存儲看門狗計數器的值,它每隔PCLK 個周期遞減一次,當它從 0x40 遞減到 0x3F(T6 清零)時會產生復位;

  • WDGTB[1:0] :

    定時器時基 ,有4種方式修改預分頻器的時基:

    00:

    CK 計數器時鐘 (PCLK div 4096) 分頻器 1、01:

    CK 計數器時鐘 (PCLK div 4096) 分頻器 2、10:

    CK 計數器時鐘 (PCLK div 4096) 分頻器 4和11:

    CK 計數器時鐘 (PCLK div 4096) 分頻器 8;

  • W[6:0]:

    7 位窗口值,用于與遞減計數器進行比較的窗口值,超過窗口閾值系統會復位;

  • 當遞減計數器值從 0x40 遞減到 0x3F時系統會復位;

  • 0x40~W[6:0]之間可以刷新喂狗,確保系統正常運行。

窗口定時器超時值的計算公式如下:

STM32L011中窗口看門狗定時器基于APB1頻率,假設APB1 頻率等于 32 MHZ,定義65毫秒周期的窗口看門狗定時器,計算方式如下所示:

?使用STM32CuBeMX配置如下所示:

往期推薦
  • 嵌入式程序調用函數的內部過程和機制

  • 低功耗深度休眠后無法喚醒、燒錄程序,怎么辦?

  • 移柯L620模組使用MQTT協議連接移動OneNet云平臺

點擊閱讀原文,更精彩~

總結

以上是生活随笔為你收集整理的stm32 定时器_如何计算STM32定时器、独立看门狗和窗口看门狗的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。