stm32的定時器分為很多類,按照功能的不同可以分為:
systick 定時器的計數器是向下遞減計數的,計數一次的時間 tdec=1/clkahb,當重灌
載 寄 存 器 中 的 值 valueload 減 到 0 的 時 候 , 產 生 中 斷 , 可 知 中 斷 一 次 的 時 間
tint=valueload * tdec= valueload/clkahb ,其中 clkahb =72mhz 。 如 果 設 置
valueload為 72,那中斷一次的時間 tint=72/72m=1us。
systick_config(systemcoreclock / 100000))
systick_config()的形我們配置為 systemcoreclock / 100000=72m/100000=720,從
剛剛分析我們知道這個形參的值最終是寫到重裝載暫存器 load 中的,從而可知我們現在
把 systick 定時器中斷一次的時間 tint=720/72m=10us。
當設定好中斷時間 tint 後,我們可以設定乙個變數 t,用來記錄進入中斷的次數,那
麼變數 t 乘以中斷的時間 tint就可以計算出需要定時的時間。
void init_timer()
void delay_us(uint32_t time) }
int main(void)
}
用韌體庫程式設計的時候我們只需要呼叫庫函式 systick_config()即可,形參 ticks 用來設
置重裝載暫存器的值,最大不能超過重裝載暫存器的值 2
24,當重裝載暫存器的值遞減到 0
的時候產生中斷,然後重裝載暫存器的值又重新裝載往下遞減計數,以此迴圈往復。緊隨
其後設定好中斷優先順序,最後配置系統定時器的時鐘等於 ahbclk=72m,使能定時器和
定時器中斷,這樣系統定時器就配置好了,乙個庫函式搞定。
收穫:stm32的定時器種類和使用都比c51複雜許多,需要學會計算方法和配置庫檔案。
STM32F103定時器配置
一 什麼是定時器 定時器,顧名思義,就是用於定時或計數,它其實就是乙個加1計數器。二 了解stm32f103定時器 stm32通用暫存器有tim2 tim3 tim4 tim5。功能包括 1 16位向上 向下 向上 向下自動裝載計數器 timx cnt 2 16位可程式設計預分頻器 timx psc...
STM32F103內部定時器TIM
1 stm32f103內部定時器有哪些?stm32一共有8個通用16位timer,其中timer1和timer8是高階定時器,其它的timer2 timer7是普通定時器。此外還有乙個systick 系統滴答定時器 這個定時器通常在作業系統中作為系統的任務切換週期。還有乙個rtc,是乙個毫秒定時器,...
STM32F103常規定時器
首先非常感謝秉火和正點原子兩個團隊為我們提供學習stm32的豐富資料及詳細教程。為加深記憶,也方便同行新手們一同學習進步,略作整理,以備檢視,如有錯誤,歡迎指正,如有侵權,聯絡刪帖!定時器分類 stm32f1 系列微控制器中,除了互聯型的產品,都有 8 個定時器,分為2個基本定時器,4個通用定時器和...