Stm32之通用定時器復習


因為畢業設計要用到PWM調光很久都沒用到Stm32的定時器,有些內容已經遺忘,為了回顧復習相關內容今天開下通用定時器這一章節的數據手冊。

1、時鍾

通用定時器一般是TIM2~TIM5,TIM1、TIM8是高級定時器,TIM6、TIM7是基本定時器。

既然名字都叫定時器,時鍾一定是最重要的,所以在看其相關工作模式和特性之前,先看下他的時鍾。

通用定時器和基本定時器都是掛載在APB1時鍾總線,這條時鍾總線最大時鍾頻率36MHz。PCLK1經過倍頻后供給通用定時器時鍾,這里要注意的是,分頻系數為1時TIMx_CLK=PCLK1,其他的分頻系數無論多少只要不是1,TIMx_CLK=2*PCLK1。(關於這里為什么叫分頻系數確是倍頻作用,我猜測是因為翻譯原因)。

這里注意的是,在MDK開發環境下,只要外部的晶振接的是8M,默認的系統時鍾SYSCLK=72MHz,默認的PCLK1=36MHz,PCLK2=72Mhz。

所以,在配置定時器工作模式和管腳復用前,記得需先配置好時鍾。(第一步)

2、定時器

接下來開始讀數據手冊:

定時器作為一種集成在芯片內部的外設,要把它當做一個獨立的器件看待,因為是集成在內部所以供電管腳不用我們考慮,此外他具有4個獨立的功能通道,可以復用到4個對應的GPIO引腳。獨立的意思就是可以單獨使用其中的一個。

每個通道都有四種功能,分別是:

  輸入捕獲:就是測量輸入信號的脈沖長度。

  輸出比較:

  PWM生成:有邊緣和中間對齊模式。PWM的應用很廣,在LED調光和PWM調速都有廣泛應用,原理是通過控制占空比調節平均輸出,需要結合高頻率的開關器件使用。

  單脈沖模式輸出:

 

因為畢業設計要用到PWM調光很久都沒用到Stm32的定時器,有些內容已經遺忘,為了回顧復習相關內容今天開下通用定時器這一章節的數據手冊。

1、時鍾

通用定時器一般是TIM2~TIM5,TIM1、TIM8是高級定時器,TIM6、TIM7是基本定時器。

既然名字都叫定時器,時鍾一定是最重要的,所以在看其相關工作模式和特性之前,先看下他的時鍾。

通用定時器和基本定時器都是掛載在APB1時鍾總線,這條時鍾總線最大時鍾頻率36MHz。PCLK1經過倍頻后供給通用定時器時鍾,這里要注意的是,分頻系數為1時TIMx_CLK=PCLK1,其他的分頻系數無論多少只要不是1,TIMx_CLK=2*PCLK1。(關於這里為什么叫分頻系數確是倍頻作用,我猜測是因為翻譯原因)。

這里注意的是,在MDK開發環境下,只要外部的晶振接的是8M,默認的系統時鍾SYSCLK=72MHz,默認的PCLK1=36MHz,PCLK2=72Mhz。

所以,在配置定時器工作模式和管腳復用前,記得需先配置好時鍾。(第一步)

2、定時器

接下來開始讀數據手冊:

定時器作為一種集成在芯片內部的外設,要把它當做一個獨立的器件看待,因為是集成在內部所以供電管腳不用我們考慮,此外他具有4個獨立的功能通道,可以復用到4個對應的GPIO引腳。獨立的意思就是可以單獨使用其中的一個。此外還有一個用於外部提供時鍾源的時鍾輸入引腳ETR,一般不會用到。

每個通道都有四種功能,分別是:

  輸入捕獲:就是測量輸入信號的脈沖長度。

  輸出比較:

  PWM生成:有邊緣和中間對齊模式。PWM的應用很廣,在LED調光和PWM調速都有廣泛應用,原理是通過控制占空比調節平均輸出,需要結合高頻率的開關器件使用。

  單脈沖模式輸出:

 

時基單元由計數寄存器,預分頻寄存器,自動裝載寄存器組成,其中自動裝載寄存器有個不可操作的對應的寄存器影子寄存器,我們不能對其讀寫,只能由cpu自動操作。這個自動裝載寄存器就是用來保存每次更新的裝載的值的,在我們想寫入新的裝載值時,CPU會自動寫到預裝載寄存器。

計數器是由預分頻器的時鍾CK_CNT驅動的,需要使能才有效,使能之后的一個時鍾周期生效。(也就是說我們在設置預裝載值時數值需要減1)

預分頻器的作用就是在TIM_CLK的基礎上再分頻,這個寄存器也是有緩沖器的,在發生更新事件后把值寫到預分頻寄存器。

對於定時器這個外設,有一個叫做更新事件UEV的東東,在每次產生這個東西時,定時器所有的具有緩存功能的寄存器開始更新數值,把預裝載的數寫進去。這個更新事件可以由硬件產生(計數溢出計數值達到最大值),也可由軟件產生,我們用指令控制EGR寄存器的UG位置高也可產生。靈活的在代碼中應用這個功能,將會給編程帶來極大的便利。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

分界線

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

一下子讀了那么大一段還是很吃力,現在腦子很熱,眼皮特別沉。還是看關鍵部分。

 3、PWM模式

相關寄存器:TIMx_CCMRx----------------OCxM  PWM模式設置

            |---------------OCxPE  使能預裝載寄存器

      TIMx_CR1-----------------APRE  使能自動重裝載的預裝載寄存器。

           TIMx_EGR--------------UG  在計數前設置UG位來初始化所有的寄存器

      TIMx_CCER--------------CCxP  可以設置OCx的極性(高/低電平有效)

            |-------------CCxE  控制OCx輸出使能

 

計數器有三種計數模式分為向上/向下計數和向上向下交替計數,而PWM模式根據計數方式的不同分為兩大類中央對齊模式(向上向下交替計數)以及邊沿對齊模式,這兩種模式是由其計數方式區分的。

而依據PWM波的產生原理,即CNT在0到ARR之間不斷增加或減少期間一直與CCR進行比較,根據比較的結果輸出高地電平。而比較結果對於輸出的高地的影響有兩種,一是CNT<=CCR時輸出高電平,反之輸出低電平,對應的是PWM1模式,二是CNT>=CCR時輸出高電平,反之輸出低電平,對應的是PWM2模式。

上面一句話解釋得很清楚,PWM模式下不同PWM模式以及對齊模式的由來,對齊模式有關的寄存器是TIMx_CCR1寄存器

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM