日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 玩轉(zhuǎn)嵌入式
[導讀]一文詳解STM32定時器的分類、功能及應用。

1. STM32定時器分類
STM32定時器可以分為3類:
A)高級控制定時器TIM1和TIM8
高級定時器適合多種用途,包含輸入捕獲、輸出比較、PWM、帶死區(qū)控制的PWM等,所以可以用來做電機控制。
B)通用定時器TIM2、TIM3、TIM4、TIM5
通用定時器就是基本的定時器,同51單片機中定時器的概念。
C)基本定時器TIM6和TIM7
基本定時器可以為通用定時提供時間基準,可以為DAC提供時鐘。
2. 通用定時器功能介紹

3. 通用定時器操作步驟
操作通用定時器時主要有如下幾部:
A)打開定時器的時鐘
定時器的時鐘控制寄存器為:APB1ENR,如下:

操作方式為RCC->APB1ENR |= (1<<0);??//打開TIM2時鐘
B)設置分頻系數(shù)和重裝值

PSC寄存器為預分頻系數(shù)設置寄存器,ARR為初值裝載寄存器,定時器2操作方式如下:
? ?? ???TIM2->ARR? ???= 9;? ?? ???//設置定時器重裝初值
? ?? ???TIM2->PSC? ???= 7199;? ?//設置預分頻系數(shù)

假設定時器的運行主頻為72Mhz,經(jīng)過7200分頻后,定時器2的主頻為10000Hz,則初值為1ms的計算方式如下:
(1/10000)*T = 1ms = 0.001s
T = 0.001*10000 = 10

C)允許更新中斷

該步驟通過DIER寄存器來實現(xiàn),定時器2的操作方式如下:
? ?? ?? TIM2->DIER ??|= (1<<6);
? ?? ???TIM2->DIER? ?|= (1<<0);?
D)允許自動重裝和使能定時器
該步驟通過CR1寄存器來實現(xiàn),TIM2的操作方式如下:
? ?? ?? TIM2->CR1 ?? |= (1<<7);
? ?? ???TIM2->CR1? ? |= (1<<0);?
E)定時器全局中斷使能
該步驟的操作方式如下:? ?? ???
NVIC->ISER[0]|= (1<<28);?
ISER總共有4組,從[0]-[3],每組有32位,即從0-31,定時器的中斷向量是第28位,比如外部中斷10-15的中斷向量為第40位,則寫法如下:
NVIC->ISER[1]|= (1<<(40-32));?
F)編寫中斷服務函數(shù)
定時器的中斷入口函數(shù)為TIMx_IRQHandler(),TIM2操作如下:
void TIM2_IRQHandler()
{
? ?? ???if((TIM2->SR&0X0001) == 1
? ?? ???{
? ?? ?? ?? ?...
? ?? ???}? ?? ???
? ?? ???TIM2->SR &= ~(1<<0);? ?
}
G)清中斷標志
最后一步不要忘了,記得清中斷標志。
關(guān)注微信公眾號『玩轉(zhuǎn)嵌入式』,后臺回復“128”獲取干貨資料匯總,回復“520”了解我的過去。
STM32單片機學習專題推薦:
STM32如何配置外部中斷?
如何高效閱讀《STM32參考手冊》?大神來教你!
STM32只會用庫函數(shù),不會用寄存器,能寫好程序嗎?
STM32單片機外部中斷配置講解


免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉