【STM32學(xué)習(xí)筆記7.1】定時器基本原理

前言

本系列文章統(tǒng)一圍繞STM32F103C8T6最小系統(tǒng)開發(fā)板進(jìn)行記錄,如涉及其他開發(fā)板將會特別說明。

基本概念

  • 主要功能
    • 嵌入式領(lǐng)域中廣泛應(yīng)用, 主要通過計時、計數(shù)的方式,周期性執(zhí)行某件工作,如檢測、響應(yīng)、控制等。
    • 應(yīng)用場合:輸入捕獲、輸出波形、計時等。
  • 類型
    • 硬件定時器
      • 由硬件資源決定,其精度主要由硬件時鐘決定
      • 單個硬件定時器可以擴(kuò)充出多個軟件定時器
    • 軟件定時器:由軟件實現(xiàn) – 循環(huán)延時
  • 工作原理:本質(zhì)上是一個計數(shù)器,當(dāng)計數(shù)器計滿溢出時,代表著一次事件,即完成一次計時。

STM32F1x定時器

  • 8個Timer定時器+1個系統(tǒng)嘀嗒定時器(SysTick)+2個看門狗定時器

  • Timer定時器

    • 基本定時器:2個,TIM6/7
      • 16位(計數(shù)器分辨率),只能向上計數(shù),只能定時,沒有外部IO
    • 通用定時器:4個,Timer2/3/4/5
      • 16位,可向上/下計數(shù),可以定時、輸出比較、輸入捕捉
      • 每個定時器有4個外部IO
    • 高級定時器:2個,TIM1/8
      • 16 位,可向上/下計數(shù)的定時器,可定時、輸出比較、輸入捕捉,還有三相電機(jī)互補輸出信號,
      • 每個定時器有8個外部IO
  • SysTick定時器

    • ARM Cortex-M3 內(nèi)核的處理器內(nèi)部包含了一個 SysTick 定時器,它是一個24 位的倒計數(shù)定時器。
    • 時鐘來源為處理器時鐘或外部時鐘。
    • 考慮到MCU的資源有限,通常延時功能通過systick定時器來實現(xiàn),而通用定時器更多地用于輸入捕獲、PWM輸出等功能。
  • 看門狗定時器

    • 用于檢測程序是否運行正常,當(dāng)計時超過某個設(shè)定的數(shù)值時,將會判斷程序異常,并強(qiáng)制復(fù)位。

時基單元

  • 作用:計數(shù),可向上計數(shù)、向下計數(shù)或者向上向下雙向計數(shù)。
  • 組成
    • 計數(shù)器寄存器(TIMx_CNT)
    • 預(yù)分頻器寄存器 (TIMx_PSC)
    • 自動裝載寄存器 (TIMx_ARR)
  • 計數(shù)模式
    • 向上計數(shù)模式(0—ARR)。

      • 計數(shù)器從0計數(shù)到自動加載值(自動裝載寄存器中的值)。
      • 重新從0開始計數(shù)并產(chǎn)生一個計數(shù)器溢出事件。
    • 向下計數(shù)模式(ARR—0)

      • 計數(shù)器從自動加載值(自動裝載寄存器中的值)到0。
      • 從自動加載值重新開始并且產(chǎn)生一個計數(shù)器向下溢出事件。
    • 中央對齊模式(向上向下計數(shù))(0—(ARR-1)—ARR—1)

      • 計數(shù)器從0開始計數(shù)到自動加載值,產(chǎn)生一個計數(shù)器溢出事件,然后向下計數(shù)到1并且產(chǎn)生一個計數(shù)器下溢事件,然后再從0開始重新計數(shù)。

定時器時鐘源

SYSCLK = 72MHz
AHB = 72MHz
APB1 = AHP / 2 = 36MHz,APB1的分頻系數(shù)為2
所以通用定時器的時鐘為APB1 * 2 = 72MHz

定時器時鐘源

定時器計時原理

定時器時鐘源每tick一次,預(yù)分頻器計數(shù)器值+1,直到達(dá)到預(yù)分頻器的設(shè)定值,然后再tick一次后計數(shù)器歸零,同時,CNT計數(shù)器值+1。


定時器計時原理
  • 預(yù)分頻器計一個數(shù)的時間為:(psc+1)/TIM\_CLK
  • 定時器溢出時間則為:(arr + 1)(psc +1)/TIM\_CLK
  • 根據(jù)定時器時鐘頻率,選擇合適的psc和arr數(shù)值進(jìn)行定時器時間設(shè)置:
    如TIM_CLK = 72MHz,設(shè)置psc = 1,arr = 35999,則溢出時間為1ms。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容