STM32F103一共有11個(gè)定時(shí)器涉馅,其中:
2個(gè)高級(jí)定時(shí)器
4個(gè)普通定時(shí)器
2個(gè)基本定時(shí)器
2個(gè)看門狗定時(shí)器
1個(gè)系統(tǒng)嘀嗒定時(shí)器
TIMER主要是由三部分組成:
1、時(shí)基單元庸诱。
2偶翅、輸入捕獲聚谁。
3滞诺、輸出比較习霹。
還有兩種模式控制功能:從模式控制和主模式控制阎曹。
通用定時(shí)器PWM工作原理
以PWM模式2处嫌,定時(shí)器3向上計(jì)數(shù)檐薯,有效電平是高電平,定時(shí)器3的第3個(gè)PWM通道為例:
定時(shí)器3的第3個(gè)PWM通道對(duì)應(yīng)是PB0這引腳坛缕,三角頂點(diǎn)的值就是TIM3_ARR寄存器的值,上圖這條紅線的值就TIM3_CCR3
當(dāng)定時(shí)器3的計(jì)數(shù)器(TIM3_CNT)剛開始計(jì)數(shù)的時(shí)候是小于捕獲/比較寄存器(TIM3_CCR3)的值骗卜,
此時(shí)PB0輸出低電平直晨,隨著計(jì)數(shù)器(TIM3_CNT)值慢慢的增加,
當(dāng)計(jì)數(shù)器(TIM3_CNT)大于捕獲/比較寄存器(TIM3_CCR3)的值時(shí)膨俐,這時(shí)PB0電平就會(huì)翻轉(zhuǎn),輸出高電平罩句,計(jì)數(shù)器(TIM3_CNT)的值繼續(xù)增加焚刺,
當(dāng)TIM3_CNT=TIM3_ARR的值時(shí),TIM3_CNT重新回到0繼續(xù)計(jì)數(shù)门烂,PB0電平翻轉(zhuǎn)乳愉,輸出低電平,此時(shí)一個(gè)完整的PWM信號(hào)就誕生了屯远。
頻率:
//Fpwm = 72M / ((arr+1)*(psc+1))(單位:Hz)
其中
F就是PWM輸出的頻率蔓姚,單位是:HZ;
ARR就是自動(dòng)重裝載寄存器(TIMx_ARR);
PSC 就是預(yù)分頻器(TIMx_PSC);
72M就是系統(tǒng)的頻率慨丐;
占空比
duty cycle = (TIMx_CCRx/ TIMx_ARR+1)* 100%
高級(jí)定時(shí)器都可以同時(shí)產(chǎn)生3路互補(bǔ)帶死區(qū)時(shí)間的PWM信號(hào)和一路單獨(dú)的PWM信號(hào),
具有剎車輸入功能,在緊急的情況下這個(gè)剎車功能可以切斷PWM信號(hào)的輸出
還具有支持針對(duì)定位的增量(正交)編碼器和霍爾傳感器電路
高級(jí)控制定時(shí)器(TIM1 和TIM8) 由一個(gè)16位的自動(dòng)裝載計(jì)數(shù)器組成,它由一個(gè)可編程的預(yù)分頻器驅(qū)動(dòng)
它適合多種用途,包含測(cè)量輸入信號(hào)的脈沖寬度( 輸入捕獲) 演痒,或者產(chǎn)生輸出波形(輸出比較希柿、PWM、嵌入死區(qū)時(shí)間的互補(bǔ)PWM等)。
使用定時(shí)器預(yù)分頻器和RCC時(shí)鐘控制預(yù)分頻器昏鹃,可以實(shí)現(xiàn)脈沖寬度和波形周期從幾個(gè)微秒到幾個(gè)毫秒的調(diào)節(jié)载迄。
高級(jí)控制定時(shí)器(TIM1 和TIM8) 和通用定時(shí)器(TIMx) 是完全獨(dú)立的粗截,它們不共享任何資源
這里只需要提一點(diǎn)有些網(wǎng)友疑惑的TIM_TimeBaseStructure.TIM_ClockDivision = 0;這句話是什么作用?其實(shí)仔細(xì)看過技術(shù)手冊(cè)后發(fā)現(xiàn)這句話與PWM輸出實(shí)驗(yàn)其實(shí)是沒關(guān)系的,這句話是設(shè)置定時(shí)器時(shí)鐘(CK_INT)頻率與數(shù)字濾波器(ETR,TIx)使用的采樣頻率之間的分頻比例的(與輸入捕獲相關(guān))厢呵,0表示濾波器的頻率和定時(shí)器的頻率是一樣的短曾。
110:PWM模式1- 在向上計(jì)數(shù)時(shí),一旦TIMx_CNT
無效電平漠嵌;在向下計(jì)數(shù)時(shí)约炎,一旦TIMx_CNT>TIMx_CCR1時(shí)通道1為無效電平(OC1REF=0),否
則為有效電平(OC1REF=1)。
111:PWM模式2- 在向上計(jì)數(shù)時(shí)报腔,一旦TIMx_CNT
有效電平翻诉;在向下計(jì)數(shù)時(shí)芦圾,一旦TIMx_CNT>TIMx_CCR1時(shí)通道1為有效電平,否則為無效電
平糊探。
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高瞪慧,所以這里我們?cè)O(shè)置的CC2P是0,也就是默認(rèn)的OC2高電平有效。