STM32F407 之 高級(jí)定時(shí)器功能描述
主要介紹下自己用到的一些功能
1、時(shí)基單元
主要包括:
● 計(jì)數(shù)器寄存器 (TIMx_CNT)
● 預(yù)分頻器寄存器 (TIMx_PSC)
● 自動(dòng)重載寄存器 (TIMx_ARR)
● 重復(fù)計(jì)數(shù)器寄存器 (TIMx_RCR)
預(yù)分頻器說(shuō)明:預(yù)分頻器可對(duì)計(jì)數(shù)器時(shí)鐘頻率進(jìn)行分頻,分頻系數(shù)介于 1 和 65536 之間。該預(yù)分頻器基于TIMx_PSC 寄存器中的 16 位寄存器所控制的 16 位計(jì)數(shù)
器。由于該控制寄存器具有緩沖功能,因此可對(duì)預(yù)分頻器進(jìn)行實(shí)時(shí)更改。而新的預(yù)分頻比將在下一更新事件發(fā)生時(shí)被采用。
2、計(jì)數(shù)器模式:遞增、遞減、中央對(duì)齊模式(遞增、遞減)
1)遞增計(jì)數(shù)模式(向上計(jì)數(shù)模式):計(jì)數(shù)器從 0 計(jì)數(shù)到自動(dòng)重載值( TIMx_ARR 寄存器的內(nèi)容),然后重新從 0 開(kāi)始計(jì)數(shù)并生成計(jì)數(shù)器上溢事件。如果使用重復(fù)
計(jì)數(shù)器,則當(dāng)遞增計(jì)數(shù)的重復(fù)次數(shù)達(dá)到重復(fù)計(jì)數(shù)器寄存器中編程的次數(shù)加一次(TIMx_RCR+1) 后,將生成更新事件 (UEV)。否則,將在每次計(jì)數(shù)器上溢時(shí)產(chǎn)生更新
事件。
2)遞減計(jì)數(shù)模式(向下計(jì)數(shù)模式):計(jì)數(shù)器從自動(dòng)重載值( TIMx_ARR 寄存器的內(nèi)容)開(kāi)始遞減計(jì)數(shù)到 0,然后重新從自動(dòng)重載值開(kāi)始計(jì)數(shù)并生成計(jì)數(shù)器下溢
事件。與上面的類(lèi)似。
3)中央對(duì)齊模式:計(jì)數(shù)器從 0 開(kāi)始計(jì)數(shù)到自動(dòng)重載值( TIMx_ARR 寄存器的內(nèi)容)-1,生成計(jì)數(shù)器上溢事件;然后從自動(dòng)重載值開(kāi)始向下計(jì)數(shù)到 1 并生成計(jì)數(shù)器下溢事件。之后從0 開(kāi)始重新計(jì)數(shù)。有1、2、3,三種模式。
3、重復(fù)計(jì)數(shù)器
只有當(dāng)重復(fù)計(jì)數(shù)器達(dá)到零時(shí),才會(huì)生成更新事件。這在生成 PWM 信號(hào)時(shí)很有用。
這意味著,每當(dāng)發(fā)生 N+1 個(gè)計(jì)數(shù)器上溢或下溢(其中, N 是 TIMx_RCR 重復(fù)計(jì)數(shù)器寄存器中的值),數(shù)據(jù)就將從預(yù)裝載寄存器轉(zhuǎn)移到影子寄存器( TIMx_ARR
自動(dòng)重載寄存器、TIMx_PSC 預(yù)分頻器寄存器以及比較模式下的 TIMx_CCRx 捕獲/比較寄存器。
重復(fù)計(jì)數(shù)器在下列情況下遞減:
● 遞增計(jì)數(shù)模式下的每個(gè)計(jì)數(shù)器上溢。
● 遞減計(jì)數(shù)模式下的每個(gè)計(jì)數(shù)器下溢。
● 中心對(duì)齊模式下每個(gè)計(jì)數(shù)器上溢和計(jì)數(shù)器下溢。盡管這使得最大重復(fù)次數(shù)不超過(guò) 128 個(gè)PWM 周期,但在每個(gè) PWM 周期內(nèi)可更新占空比兩次。當(dāng)在中心對(duì)齊
模式下,每個(gè)PWM 周期僅刷新一次比較寄存器時(shí),由于模式的對(duì)稱(chēng)性,最大分辨率為 2xTck。
4、時(shí)鐘選擇
計(jì)數(shù)器時(shí)鐘可由下列時(shí)鐘源提供:
● 內(nèi)部時(shí)鐘 (CK_INT)
● 外部時(shí)鐘模式 1:外部輸入引腳
● 外部時(shí)鐘模式 2:外部觸發(fā)輸入 ETR
● 外部觸發(fā)輸入 (ITRx):使用一個(gè)定時(shí)器作為另一定時(shí)器的預(yù)分頻器,例如,可將定時(shí)器1 配置為定時(shí)器 2 的預(yù)分頻器。
5、PWM 輸入模式:對(duì)于PWM輸入,主要是測(cè)頻率與測(cè)占空比。
6、強(qiáng)置輸出模式:通過(guò)設(shè)置CCMR寄存器,可以使OCxREF強(qiáng)制為高或低一種狀態(tài)。且計(jì)數(shù)器和比較器仍在工作,并產(chǎn)生中斷或DMA。
7、輸出比較模式
此功能用于控制輸出波形,或指示已經(jīng)過(guò)某一時(shí)間段。
在輸出比較模式下,更新事件 UEV 對(duì) OCxREF 和 OCx 輸出毫無(wú)影響。同步的精度可以達(dá)到計(jì)數(shù)器的一個(gè)計(jì)數(shù)周期。輸出比較模式也可用于輸出單脈沖(在單
脈沖模式下)。
步驟:
1. 選擇計(jì)數(shù)器時(shí)鐘(內(nèi)部、外部、預(yù)分頻器)。
2. 在 TIMx_ARR 和 TIMx_CCRx 寄存器中寫(xiě)入所需數(shù)據(jù)。
3. 如果要生成中斷請(qǐng)求,則需將 CCxIE 位置 1。
4. 選擇輸出模式。例如:
— 當(dāng) CNT 與 CCRx 匹配時(shí),寫(xiě)入 OCxM = 011 以翻轉(zhuǎn) OCx 輸出引腳
— 寫(xiě)入 OCxPE = 0 以禁止預(yù)裝載寄存器
— 寫(xiě)入 CCxP = 0 以選擇高電平有效極性
— 寫(xiě)入 CCxE = 1 以使能輸出
5. 通過(guò)將 TIMx_CR1 寄存器中的 CEN 位置 1 來(lái)使能計(jì)數(shù)器。
8、PWM 模式
脈沖寬度調(diào)制模式可以生成一個(gè)信號(hào),該信號(hào)頻率由 TIMx_ARR 寄存器值決定,其占空比則由 TIMx_CCRx 寄存器值決定。有兩種模式。
9、互補(bǔ)輸出與死區(qū)插入
● 輸出信號(hào) OCx 與參考信號(hào)相同,只是其上升沿相對(duì)參考上升沿存在延遲。
● 輸出信號(hào) OCxN 與參考信號(hào)相反,并且其上升沿相對(duì)參考下降沿存在延遲。
10、單脈沖模式