0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32F03定時(shí)器基礎(chǔ)知識(shí)基本簡(jiǎn)介

冬至子 ? 來(lái)源:每一日學(xué) ? 作者:塵埃 ? 2023-07-03 17:08 ? 次閱讀

一、思維導(dǎo)圖

圖片

三、定時(shí)器基本簡(jiǎn)介

(一)定時(shí)器分類(lèi)

STM32F103微控制器的定時(shí)器分為 系統(tǒng)定時(shí)器(SysTick)看門(mén)狗”定時(shí)器(WatchDog) 、 基本定時(shí)器通用定時(shí)器 、高級(jí)定時(shí)器實(shí)時(shí)時(shí)鐘(RTC) 等。

  1. 系統(tǒng)定時(shí)器(SysTick) :是一個(gè)集成在Cortex-M3內(nèi)核當(dāng)中的定時(shí)器,Cortex-M3內(nèi)核附帶SysTick的主要目的是 給實(shí)時(shí)操作系統(tǒng)(RTOS)提供時(shí)間基準(zhǔn)(時(shí)鐘節(jié)拍 ),SysTick是不允許被用戶(hù)直接使用的。
  2. “看門(mén)狗”定時(shí)器(WatchDog) :“看門(mén)狗”定時(shí)器連接到STM32微控制器芯片的復(fù)位電路, 在定時(shí)器溢出時(shí)會(huì)觸發(fā)復(fù)位操作 。
  3. 實(shí)時(shí)時(shí)鐘RTC :是一個(gè)帶獨(dú)立電源供電引腳和獨(dú)立時(shí)鐘源的定時(shí)器,可以實(shí)現(xiàn)在芯片主電源斷電情況下的連續(xù)供電,以 確保RTC定時(shí)器計(jì)數(shù)的連續(xù)性 。
  4. 基本定時(shí)器 :包括TIM6和TIM7,可以 實(shí)現(xiàn)基本的定時(shí)/計(jì)數(shù)功能
  5. 通用定時(shí)器 :包括TIM2、TIM3、TIM4和TIM5,在基本定時(shí)器功能的基礎(chǔ)上,可以 實(shí)現(xiàn)比較輸出、輸入捕獲、PWM輸出等功能 。
  6. 高級(jí)定時(shí)器 :包括TIM1和TIM8,在通用定時(shí)器功能的基礎(chǔ)上, 可以實(shí)現(xiàn)PWM輸出的死區(qū)控制 ,這一功能在全控橋逆變電路的控制中是十分關(guān)鍵的。

1.jpg

(二)通用定時(shí)器的主要功能

1. 位于低速的APB1總線(xiàn)上 (注意:高級(jí)定時(shí)器是在高速的APB2總線(xiàn)上);

2. 16位向上、向下、向上/向下自動(dòng)裝載計(jì)數(shù)器(TIMx_CNT) ;

3. 16位編程(可以實(shí)時(shí)修改)預(yù)分頻器(TIMx_PSC), 計(jì)數(shù)器時(shí)鐘頻率的分頻系數(shù)為1~65536之間的任意數(shù)值

4. 4個(gè)獨(dú)立通道(TIMx_CH1~4) ,這些通道可以用來(lái)作為: 輸入捕獲、輸出比較、PWM生成 (邊緣或中間對(duì)齊模式)、 單脈沖模式輸出 ;

5. 使用外部信號(hào)控制定時(shí)器和定時(shí)器互連的同步電路

6. 如下事件發(fā)生時(shí)產(chǎn)生中斷/DMA :更新(計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過(guò)軟件或者內(nèi)部/外部觸發(fā)))、觸發(fā)事件(計(jì)數(shù)器啟動(dòng)、停止、初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù))、輸入捕獲、輸出比較; 支持針對(duì)定位的增量(正交)編碼器和霍爾傳感器電路觸發(fā)輸入作為外部時(shí)鐘或者按周期的電流管理 ;

7.STM32的通用定時(shí)器可以被用于:測(cè)量輸入信號(hào)的脈沖長(zhǎng)度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和PWM)等。(使用定時(shí)器預(yù)分頻器和RCC時(shí)鐘控制器預(yù)分頻器,脈沖長(zhǎng)度和波形周期可以在幾個(gè)微秒到幾個(gè)毫秒間調(diào)整。)

8. 每個(gè)通用定時(shí)器都是完全獨(dú)立的,沒(méi)有互相共享的任何資源 。

(三)通用定時(shí)器的計(jì)數(shù)器模式

  1. 通用定時(shí)器可以向上計(jì)數(shù)、向下計(jì)數(shù)、向上向下雙向計(jì)數(shù)模式。
  2. 向上計(jì)數(shù)模式 :計(jì)數(shù)器從0計(jì)數(shù)到自動(dòng)加載值(TIMx_ARR),然后重新從0開(kāi)始計(jì)數(shù)并且產(chǎn)生一個(gè)計(jì)數(shù)器溢出事件。
  3. 向下計(jì)數(shù)模式 :計(jì)數(shù)器從自動(dòng)裝入的值(TIMx_ARR)開(kāi)始向下計(jì)數(shù)到0,然后從自動(dòng)裝入的值重新開(kāi)始,并產(chǎn)生一個(gè)計(jì)數(shù)器向下溢出事件。
  4. 中央對(duì)齊模式(向上/向下計(jì)數(shù)) :計(jì)數(shù)器從0開(kāi)始計(jì)數(shù)到自動(dòng)裝入的值-1,產(chǎn)生一個(gè)計(jì)數(shù)器溢出事件,然后向下計(jì)數(shù)到1并且產(chǎn)生一個(gè)計(jì)數(shù)器溢出事件;然后再?gòu)?開(kāi)始重新計(jì)數(shù)。

(四)通用定時(shí)器的PWM

利用STM32通用定時(shí)器的比較輸出功能,可以很方便地輸出PWM信號(hào)。脈沖寬度調(diào)制(Pulse Width Modulation,PWM)是廣泛用于燈光亮度、電機(jī)調(diào)速的一種數(shù)字控制方法。

脈沖寬度與周期的比值稱(chēng)為占空比 ,脈沖寬度越大,則占空比越大。占空比越大的信號(hào)對(duì)應(yīng)的LED亮度也越高。

圖片

如圖(a)所示,首先將定時(shí)器設(shè)置為增加/減少計(jì)數(shù)模式,則主計(jì)數(shù)器由0開(kāi)始加計(jì)數(shù)到自動(dòng)重裝載值Np,然后減計(jì)數(shù)到0,如此循環(huán)往復(fù)。圖中的三角形表示計(jì)數(shù)值的變化曲線(xiàn),三角形曲線(xiàn)的周期為T(mén)。

如果開(kāi)啟PWM輸出模式,并將比較輸出值設(shè)為Nc,則在定時(shí)器的PWM輸出端會(huì)產(chǎn)生電平變化,當(dāng)比較值Nc大于計(jì)數(shù)值n時(shí),輸出高電平;當(dāng)比較值Nc小于計(jì)數(shù)值n時(shí),輸出低電平,如此循環(huán)往復(fù)可以產(chǎn)生一個(gè)周期為T(mén)的方波。

如圖(b)所示,增加比較輸出值Nc,按照以上規(guī)則會(huì)產(chǎn)生一個(gè)周期同樣為T(mén)的方波,只是此時(shí)脈沖寬度ΔT增加,也就是占空比增加。

(五)通用定時(shí)器結(jié)構(gòu)框圖

通用定時(shí)器TIMx(TIM2~TIM5)的核心為可編程預(yù)分頻器驅(qū)動(dòng)的16位自動(dòng)重裝載計(jì)數(shù)器,主要由時(shí)鐘源、時(shí)鐘單元、捕獲/比較通道等組成。

圖片

1. 時(shí)鐘源的選擇

通用定時(shí)器的時(shí)鐘可由多種時(shí)鐘輸入源構(gòu)成,除了內(nèi)部時(shí)鐘源,其他三種時(shí)鐘源均通過(guò)TRGI(觸發(fā))輸入。通用定時(shí)器的計(jì)數(shù)器時(shí)鐘可由下列時(shí)鐘源提供:

(1) 內(nèi)部時(shí)鐘(TIMx_CLK) 。

(2) 外部時(shí)鐘模式1:外部捕捉比較引腳(TIx) ,外部輸入引腳(TIx)包括外部比較/捕獲引腳TIIF_ED、TI1FP1和TI2FP2,計(jì)數(shù)器在選定引腳的上升沿或下降沿開(kāi)始計(jì)數(shù)。

(3) 外部時(shí)鐘模式2:外部引腳輸入(TIMx_ETR) ,外部觸發(fā)輸入引腳(ETR),計(jì)數(shù)器在ETR引腳的上升沿或下降沿開(kāi)始計(jì)數(shù)。

(4) 內(nèi)部觸發(fā)輸入(ITRx,x=0, 1, 2, 3) ,一個(gè)定時(shí)器作為另一個(gè)定時(shí)器的預(yù)分頻器,如可以配置定時(shí)器TIM1作為定時(shí)器TIM2的預(yù)分頻器。

這里定時(shí)器的內(nèi)部時(shí)鐘源并不是直接來(lái)自APB1或APB2,而是 來(lái)源于輸入為APB1或APB2的一個(gè)倍頻器 。當(dāng)APB1的預(yù)分頻系數(shù)為1時(shí),這個(gè)倍頻器不起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率。當(dāng)APB1的預(yù)分頻系數(shù)為其他數(shù)值(預(yù)分頻系數(shù)為2、4、8或16)時(shí),這個(gè)倍頻器才能夠發(fā)揮作用,定時(shí)器的時(shí)鐘頻率等于APB1頻率的2倍。(例:當(dāng)AHB為72MHz時(shí),APB1的預(yù)分頻系數(shù)必須大于2,因?yàn)锳PB1的最大輸出頻率只能為36MHz。如果APB1的預(yù)分頻系數(shù)為2,則由于這個(gè)倍頻器2倍的作用,使得TIM2~TIM5仍然能夠得到72MHz的時(shí)鐘頻率。若APB1的輸出為72MHz,則直接取APB1的預(yù)分頻系數(shù)為1就可以保證TIM2~TIM5的時(shí)鐘頻率為72MHz,但是這樣就無(wú)法為其他外設(shè)提供低頻時(shí)鐘。當(dāng)設(shè)置內(nèi)部的倍頻器時(shí),可以在保證其他外設(shè)能夠使用較低時(shí)鐘頻率的同時(shí),使TIM2~TIM5仍能得到較高的時(shí)鐘頻率。)

外部時(shí)鐘源作為通用定時(shí)器的時(shí)鐘時(shí),包括外部時(shí)鐘模式1和外部時(shí)鐘模式2兩種** 。當(dāng)從模式控制寄存器TIMx_SMCR的SMS=1時(shí),外部時(shí)鐘源模式1被選定,計(jì)數(shù)器可以在選定輸入引腳的每個(gè)上升沿或下降沿計(jì)數(shù)。

當(dāng)從模式控制寄存器TIMx_SMCR的ECE=1時(shí),外部時(shí)鐘源模式2被選定,計(jì)數(shù)器在ETR引腳的上升沿或下降沿開(kāi)始計(jì)數(shù)。

2. 定時(shí)器的時(shí)基單元

STM32微控制器的定時(shí)器的時(shí)基單元,從時(shí)鐘源送來(lái)的時(shí)鐘信號(hào),經(jīng)過(guò)預(yù)分頻器的分頻,降低頻率后輸出信號(hào)CK_CNT,送入計(jì)數(shù)器計(jì)數(shù)。預(yù)分頻器的分頻取值可以是1~65536之間的任意數(shù)值,一個(gè)72MHz的輸入信號(hào)經(jīng)過(guò)分頻后,最小可以產(chǎn)生接近100Hz的信號(hào)。

可編程通用定時(shí)器的 主要部分是一個(gè)16位計(jì)數(shù)器和與其相關(guān)的自動(dòng)重裝載寄存器 。該計(jì)數(shù)器可以在時(shí)鐘控制單元的控制下,進(jìn)行遞增計(jì)數(shù)、遞減計(jì)數(shù)或中央對(duì)齊計(jì)數(shù)(先遞增計(jì)數(shù),達(dá)到自動(dòng)重裝載寄存器的數(shù)值后再遞減計(jì)數(shù))。通過(guò)對(duì)時(shí)鐘控制單元的控制,可以實(shí)現(xiàn)直接被清零或在計(jì)數(shù)值達(dá)到自動(dòng)重裝載寄存器的數(shù)值后被清零,也可以直接被停止或在計(jì)數(shù)值達(dá)到自動(dòng)重裝載寄存器的數(shù)值時(shí)被停止,還能夠?qū)崿F(xiàn)暫停一段時(shí)間計(jì)數(shù)后在時(shí)鐘控制單元的控制下恢復(fù)計(jì)數(shù)等操作。

計(jì)數(shù)器計(jì)滿(mǎn)溢出后,自動(dòng)重裝載寄存器TIMx_ARR將所保存的初值重新賦給計(jì)數(shù)器,以實(shí)現(xiàn)繼續(xù)計(jì)數(shù)。

3. 捕獲/比較通道

通用定時(shí)器上的每一個(gè)TIMx的捕獲/比較通道都有一個(gè)捕獲/比較寄存器(包含影子寄存器),包括捕獲的輸入部分(數(shù)字濾波、多路復(fù)用和預(yù)分頻器)和輸出部分(比較器和輸出控制)。當(dāng)一個(gè)通道工作在捕獲模式時(shí),該通道的輸出部分會(huì)自動(dòng)停止工作;反之,當(dāng)一個(gè)通道工作在比較模式時(shí),該通道的輸入部分也會(huì)自動(dòng)停止工作。

(1)捕獲通道。當(dāng)一個(gè)通道工作于捕獲模式時(shí),輸入信號(hào)會(huì)從引腳經(jīng)輸入濾波、邊沿檢測(cè)和預(yù)分頻電路后,控制捕獲寄存器的操作。

(2)比較通道。當(dāng)一個(gè)通道工作于比較模式時(shí),程序?qū)⒈容^數(shù)值寫(xiě)入比較寄存器,定時(shí)器會(huì)不停地將該寄存器的內(nèi)容與計(jì)數(shù)器的內(nèi)容進(jìn)行比較,一旦比較條件成立,就會(huì)產(chǎn)生相應(yīng)的輸出。

4. 定時(shí)時(shí)間的計(jì)算

Tout= ((arr+1)*(psc+1))/Tclk; Tclk :TIM3的輸入時(shí)鐘頻率(單位為MHz)。 Tout :TIM3溢出時(shí)間(單位為us)。

例:計(jì)時(shí)1s,輸入時(shí)鐘頻率為72MHz。

arr = 9999,psc = 7199。

Tout = ((arr+1)*(psc+1))/Tclk = ((9999+1) *(7199+1))/72=1M(us)=1(s)

1.jpg

(六)編寫(xiě)定時(shí)器中斷

  1. 使能定時(shí)器時(shí)鐘 。調(diào)用函數(shù):RCC_APB1PeriphClockCmd();
  2. 初始化定時(shí)器,配置ARR、PSC 。調(diào)用函數(shù):TIM_TimeBaseInit();
  3. 開(kāi)啟定時(shí)器中斷,配置NVIC 。調(diào)用函數(shù):void TIM_ITConfig();NVIC_Init();
  4. 使能定時(shí)器 。調(diào)用函數(shù):TIM_Cmd();
  5. 編寫(xiě)中斷服務(wù)函數(shù) 。調(diào)用函數(shù):TIMx_IRQHandler()。
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7394

    瀏覽量

    150624
  • 看門(mén)狗
    +關(guān)注

    關(guān)注

    10

    文章

    557

    瀏覽量

    70666
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3226

    瀏覽量

    114142
  • 電源供電
    +關(guān)注

    關(guān)注

    0

    文章

    157

    瀏覽量

    22062
  • STM32F103
    +關(guān)注

    關(guān)注

    33

    文章

    475

    瀏覽量

    63345
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    電機(jī)控制基礎(chǔ)知識(shí)1—定時(shí)器基礎(chǔ)知識(shí)與PWM輸出原理

    轉(zhuǎn)速等。 本篇先介紹 定時(shí)器基礎(chǔ)知識(shí) ,然后對(duì)照這些知識(shí)介紹一下 定時(shí)器輸出PWM的基本原理 ,以及 編程實(shí)現(xiàn)與代碼分析 。 首先來(lái)看一下定時(shí)器
    的頭像 發(fā)表于 06-17 00:11 ?1.2w次閱讀
    電機(jī)控制<b class='flag-5'>基礎(chǔ)知識(shí)</b>1—<b class='flag-5'>定時(shí)器</b><b class='flag-5'>基礎(chǔ)知識(shí)</b>與PWM輸出原理

    STM32F407 基本定時(shí)器使用

    介紹STM32F407基本定時(shí)器的配置方法,分別介紹輪詢(xún)方式、中斷方式使用定時(shí)器完成定時(shí)。
    的頭像 發(fā)表于 07-06 14:32 ?3010次閱讀
    <b class='flag-5'>STM32F</b>407 基本<b class='flag-5'>定時(shí)器</b>使用

    STM32F03自帶的ADC功能

    前言學(xué)習(xí)了之后才知道原來(lái)STM32F03自帶的ADC功能還是挺強(qiáng)大的,10位ADC,一次可以?huà)呙?6個(gè)通道。還可以使用DMA來(lái)讀取轉(zhuǎn)換結(jié)果,最重要的是不用加ADC外設(shè)了。ADC知識(shí)點(diǎn)多的就不
    發(fā)表于 07-23 07:01

    定時(shí)器基礎(chǔ)知識(shí)

    、定時(shí)器基礎(chǔ)知識(shí)1.STM32定時(shí)器簡(jiǎn)介(1)STM32家族的
    發(fā)表于 08-09 07:30

    STM32定時(shí)器簡(jiǎn)介

    目錄1:STM32定時(shí)器2:通用定時(shí)器簡(jiǎn)介3:計(jì)數(shù)模式4:通用定時(shí)器工作過(guò)程5:
    發(fā)表于 08-18 06:48

    Systick定時(shí)器基礎(chǔ)知識(shí)講解

    Systick定時(shí)器基礎(chǔ)知識(shí)講解Systick相關(guān)寄存庫(kù)函數(shù)講解delay延時(shí)函數(shù)講解(Systick應(yīng)用)(借鑒正點(diǎn)原子網(wǎng)課)(一)Systick定時(shí)器,是一個(gè)簡(jiǎn)單的
    發(fā)表于 08-19 07:18

    STM32H7的TIM定時(shí)器基礎(chǔ)知識(shí)和HAL庫(kù)

    第32章 STM32H7的TIM定時(shí)器基礎(chǔ)知識(shí)和HAL庫(kù)API本章節(jié)為大家講解TIM1 – TIM17(STM32H7沒(méi)有TIM9,TIM10和TIM11)共計(jì)14個(gè)
    發(fā)表于 08-19 06:53

    淺析STM32f03的系統(tǒng)時(shí)鐘和配置時(shí)鐘

    怎樣對(duì)STM32f03的時(shí)鐘樹(shù)進(jìn)行配置呢?怎樣去設(shè)置STM32f03系統(tǒng)時(shí)鐘的庫(kù)函數(shù)呢?
    發(fā)表于 11-08 07:39

    定時(shí)器基礎(chǔ)知識(shí)與PWM輸出原理是什么

    轉(zhuǎn)速等。本篇先介紹定時(shí)器基礎(chǔ)知識(shí),然后對(duì)照這些知識(shí)介紹一下定時(shí)器輸出PWM的基本原理,以及編程實(shí)現(xiàn)與代碼分析。首先來(lái)看一下定時(shí)器的基礎(chǔ)介紹
    發(fā)表于 01-25 08:16

    淺談定時(shí)器基礎(chǔ)知識(shí)與PWM輸出原理

    轉(zhuǎn)速等。 本篇先介紹定時(shí)器基礎(chǔ)知識(shí),然后對(duì)照這些知識(shí)介紹一下定時(shí)器輸出PWM的基本原理,以及編程實(shí)現(xiàn)與代碼分析。 首先來(lái)看一下定時(shí)器的基礎(chǔ)
    的頭像 發(fā)表于 04-05 10:35 ?1.4w次閱讀
    淺談<b class='flag-5'>定時(shí)器</b><b class='flag-5'>基礎(chǔ)知識(shí)</b>與PWM輸出原理

    STM32F03學(xué)習(xí)筆記之ADC配置(含DMA配置)

    前言學(xué)習(xí)了之后才知道原來(lái)STM32F03自帶的ADC功能還是挺強(qiáng)大的,10位ADC,一次可以?huà)呙?6個(gè)通道。還可以使用DMA來(lái)讀取轉(zhuǎn)換結(jié)果,最重要的是不用加ADC外設(shè)了。ADC知識(shí)點(diǎn)多的就不
    發(fā)表于 11-30 11:21 ?13次下載
    <b class='flag-5'>STM32F03</b>學(xué)習(xí)筆記之ADC配置(含DMA配置)

    電機(jī)控制基礎(chǔ)——定時(shí)器基礎(chǔ)知識(shí)與PWM輸出原理

    轉(zhuǎn)速等。本篇先介紹定時(shí)器基礎(chǔ)知識(shí),然后對(duì)照這些知識(shí)介紹一下定時(shí)器輸出PWM的基本原理,以及編程實(shí)現(xiàn)與代碼分析。首先來(lái)看一下定時(shí)器的基礎(chǔ)介紹
    發(fā)表于 11-30 14:21 ?38次下載
    電機(jī)控制基礎(chǔ)——<b class='flag-5'>定時(shí)器</b><b class='flag-5'>基礎(chǔ)知識(shí)</b>與PWM輸出原理

    STM32---定時(shí)器知多少

    14,15,16章節(jié),里面對(duì)定時(shí)器知識(shí)有詳細(xì)的介紹。STM32F1系列的開(kāi)發(fā)板一共有8個(gè)定時(shí)器,按照功能的不同可以分為:高級(jí)定時(shí)器(TIM
    發(fā)表于 11-30 14:36 ?19次下載
    <b class='flag-5'>STM32</b>---<b class='flag-5'>定時(shí)器</b>知多少

    STM32F03寄存方式點(diǎn)亮LED流水燈

    STM32F03寄存方式點(diǎn)亮LED流水燈文章目錄STM32F03寄存方式點(diǎn)亮LED流水燈一、題目?jī)?nèi)容二、STM32F03系列芯片的地址映
    發(fā)表于 01-13 14:47 ?9次下載
    <b class='flag-5'>STM32F03</b>寄存<b class='flag-5'>器</b>方式點(diǎn)亮LED流水燈

    STM32F407定時(shí)器編碼模式簡(jiǎn)介

    STM32F407定時(shí)器編碼模式
    發(fā)表于 03-31 17:14 ?8454次閱讀
    <b class='flag-5'>STM32F</b>407<b class='flag-5'>定時(shí)器</b>編碼<b class='flag-5'>器</b>模式<b class='flag-5'>簡(jiǎn)介</b>