三種定時(shí)器的區(qū)別
通用定時(shí)器功能特點(diǎn)的描述
STM32的眾多定時(shí)器中我們使用最多的是高級(jí)定時(shí)器和通用定時(shí)器,而高級(jí)定時(shí)器一般也是用作通用定時(shí)器的功能,下面我們就以通用定時(shí)器為例進(jìn)行講解,其功能和特點(diǎn)包括:
-
通用與基本定時(shí)器(2~7)位于低速的APB1總線上
-
高級(jí)定時(shí)器(1、8)位于高速的APB2總線上
-
自動(dòng)裝載計(jì)數(shù)器(TIMx_CNT)有16 位向上、向下、向上/向下(中心對(duì)齊)計(jì)數(shù)模式。
-
預(yù)分頻器(TIMx_PSC)是16 位可編程(可以實(shí)時(shí)修改)的,計(jì)數(shù)器時(shí)鐘頻率的分頻系數(shù)由它設(shè)置,可以為 1~65535 之間的任意數(shù)值。
-
每個(gè)定時(shí)器都有4個(gè)獨(dú)立的通道,這4個(gè)通道與相應(yīng)的引腳一一對(duì)應(yīng)可以查表
-
4 個(gè)獨(dú)立通道(TIMx_CH1~4),這些通道功能可以用來(lái)作為:
- 輸入捕獲
- 輸出比較
- PWM 生成(邊緣或中間對(duì)齊模式)
- 單脈沖模式輸出
-
可使用外部信號(hào)(TIMx_ETR)控制定時(shí)器和定時(shí)器互連(可以用 1 個(gè)定時(shí)器控制另外一個(gè)定時(shí)器)的同步電路。
-
如下事件發(fā)生時(shí)產(chǎn)生中斷/DMA(6個(gè)獨(dú)立的IRQ/DMA請(qǐng)求生成器): (前4件用的比較多)
- 更新中斷(TIM_IT_Update):計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過(guò)軟件或者內(nèi)部/外部觸發(fā))
- 觸發(fā)事件(計(jì)數(shù)器啟動(dòng)、停止、初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù))
- 輸入捕獲
- 輸出比較
- 支持針對(duì)定位的增量(正交)編碼器和霍爾傳感器電路
- 觸發(fā)輸入作為外部時(shí)鐘或者按周期的電流管理
-
STM32 的通用定時(shí)器可以被用于:測(cè)量輸入信號(hào)的脈沖長(zhǎng)度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和 PWM)等。
-
使用定時(shí)器預(yù)分頻器和 RCC 時(shí)鐘控制器預(yù)分頻器,脈沖長(zhǎng)度和波形周期可以在幾個(gè)微秒到幾個(gè)毫秒間調(diào)整。STM32 的每個(gè)通用定時(shí)器都是完全獨(dú)立的,沒(méi)有互相共享的任何資源。
時(shí)基單元
時(shí)基單元包含:
- 計(jì)數(shù)器寄存器(TIMx_CNT) :不斷計(jì)數(shù)
- 預(yù)分頻器寄存器 (TIMx_PSC) :分頻系數(shù)
- 自動(dòng)裝載寄存器 (TIMx_ARR):裝載值
計(jì)數(shù)器模式
- 向上計(jì)數(shù)模式(從0到ARR的值)
- 向下計(jì)數(shù)模式(從ARR的值到0)
- 中央對(duì)齊模式(向上/向下計(jì)數(shù)) (在中央對(duì)齊模式,計(jì)數(shù)器從0開(kāi)始計(jì)數(shù)到ARR寄存器?1,產(chǎn)生一個(gè)計(jì)數(shù)器溢出事件,然后向下計(jì)數(shù)到1并且產(chǎn)生一個(gè)計(jì)數(shù)器下溢事件;然后再?gòu)?開(kāi)始重新計(jì)數(shù)。)
時(shí)鐘選擇
計(jì)數(shù)器時(shí)鐘可由下列時(shí)鐘源提供:兩個(gè)內(nèi)部時(shí)鐘、兩個(gè)外部時(shí)鐘
- 內(nèi)部時(shí)鐘(CK_INT)(用的最多)
- 外部時(shí)鐘模式1:外部輸入腳(TIx),定時(shí)器下通道輸入捕獲捕獲的信號(hào)
- 外部時(shí)鐘模式2:外部觸發(fā)輸入(ETR),外部IO口輸入的時(shí)鐘信號(hào)
- 內(nèi)部觸發(fā)輸入(ITRx):使用一個(gè)定時(shí)器作為另一個(gè)定時(shí)器的預(yù)分頻器,如可以配置一個(gè)定時(shí)器Timer1而作為另一個(gè)定時(shí)器Timer2的預(yù)分頻器(僅2.3.4定時(shí)器有)。參見(jiàn)14.3.15
基本定時(shí)器的功能只占通用定時(shí)器的一部分,所以學(xué)習(xí)基本定時(shí)器比較簡(jiǎn)單易上手,新手先看參考手冊(cè)的基本定時(shí)器章節(jié)。
先掌握基本定時(shí)器是最佳的選擇。
計(jì)算定時(shí)器時(shí)鐘頻率(兩個(gè)總線頻率不同)以APB1為例:
如果AHB=72M,APB1由AHB分頻可得不同的頻率72/1,72/2,72/4,72/8,72/16。
PCLK1最大為36M不能1分頻(這里不會(huì)用到它)
TIMxCLK的值由APB1決定,APB1=AHB/1時(shí),TIMCLK=APB1;APB1=AHB/2、4、8、16時(shí),TIMCLK=APB1×2=AHB/2、4、8、16×2。
例AHB=72,APB1=72,則TIMCLK=72
例AHB=72,APB1=36,則TIMCLK=72÷2×2
實(shí)驗(yàn):定時(shí)器中斷
例:計(jì)算溢出時(shí)間每500ms產(chǎn)生更新中斷
Tout=(ARR+1)÷[(TIMCLK)÷(PSC+1)]
例500ms=(4999+1)÷[(72M)÷(7199+1)]
與中斷有關(guān)的位:UIF位、UIE位文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-715211.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-715211.html
到了這里,關(guān)于STM32定時(shí)器-定時(shí)器中斷功能詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!