第16章stm32外設(shè)之基本定時(shí)器_第1頁(yè)
第16章stm32外設(shè)之基本定時(shí)器_第2頁(yè)
第16章stm32外設(shè)之基本定時(shí)器_第3頁(yè)
第16章stm32外設(shè)之基本定時(shí)器_第4頁(yè)
第16章stm32外設(shè)之基本定時(shí)器_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第16章STM32外設(shè)之基本定時(shí)器TIM-定時(shí)器(Timers)定時(shí)器最基本的功能就是定時(shí),類似Systick實(shí)現(xiàn)周期性定時(shí)STM32F407IGT6芯片總共有14個(gè)TIM:2個(gè)基本定時(shí)器(TIM6和TIM7)4個(gè)通用定時(shí)器(TIM2~TIM5):全功能通用定時(shí)器6個(gè)通用定時(shí)器(TIM9~TIM14):只有1個(gè)或者2個(gè)通道。2個(gè)高級(jí)控制定時(shí)器(TIM1和TIM8)基本定時(shí)器有的功能通用定時(shí)器都有的通用定時(shí)器有的功能高級(jí)控制定時(shí)器都有的定時(shí)器還有下面這些功能:ADC和DAC開始轉(zhuǎn)換觸發(fā)輸入捕獲:脈沖計(jì)數(shù)、上升沿或下降沿時(shí)間檢測(cè)、PWM輸入檢測(cè)輸出比較:脈沖輸出、步進(jìn)電機(jī)控制脈沖寬度調(diào)節(jié)PWM:電壓輸出控制、直流減速電機(jī)控制、直流無(wú)刷電機(jī)控制單脈沖模式輸出編碼器接口、霍爾傳感器接口STM32F407定時(shí)器特性STM32F407定時(shí)器特性截圖于《STM32F407編程手冊(cè)》的6.2時(shí)鐘截圖于STM32CubeMX軟件配置STM32F407定時(shí)器特性STM32F407定時(shí)器特性三種定時(shí)器計(jì)數(shù)方式:遞增(向上計(jì)數(shù)):0、1、2、……、65534、65535、0、1、2、……遞減(向下計(jì)數(shù)):

65535、65534、……、2、1、0、65535、65534、……遞增/遞減(中心對(duì)齊):

0、1、2、……、65534、65535、65534、……、2、1、0、1、2、……(計(jì)數(shù)最大值不一定是65535,是可以通過(guò)寄存器值設(shè)定的)STM32F407定時(shí)器特性定時(shí)器的多種高級(jí)功能是需要外部引腳配合使用的,比如輸入捕獲(脈沖計(jì)數(shù)、上升沿或下降沿時(shí)間檢測(cè)、PWM輸入檢測(cè))、輸出比較(脈沖輸出、步進(jìn)電機(jī)控制)、脈沖寬度調(diào)節(jié)PWM(電壓輸出控制、直流減速電機(jī)控制、直流無(wú)刷電機(jī)控制)、編碼器接口、霍爾傳感器接口。IO作為定時(shí)器功能就是IO的復(fù)用,所以程序里邊需要設(shè)置為復(fù)用模式。一個(gè)定時(shí)器功能引腳可以對(duì)應(yīng)不同的IO,這樣增加IO的可選性,使得芯片可設(shè)計(jì)性更強(qiáng),并且IO的選擇可以直接通過(guò)程序配置?;径〞r(shí)器—TIM6&TIM7定時(shí)器的功能主要有兩個(gè):基本定時(shí)功能,當(dāng)累加的時(shí)鐘脈沖數(shù)超過(guò)預(yù)定值時(shí),能觸發(fā)中斷或者觸發(fā)DMA請(qǐng)求。是專門用于驅(qū)動(dòng)數(shù)模轉(zhuǎn)換器(DAC)。TIM6和TIM7兩者間是完全獨(dú)立的(資源完全獨(dú)立),當(dāng)然,可以同時(shí)使用。只是TIM6和TIM7原理功能完全一致,所以把原理介紹部分合在一起,通用講解。基本定時(shí)器—TIM6&TIM7自動(dòng)重裝載寄存器、PSC預(yù)分頻器下面有一個(gè)陰影,在圖下方暗紅色框內(nèi),可以看到,陰影的解釋是:根據(jù)控制位的設(shè)定,在定時(shí)器更新(Update)事件(U事件)時(shí)傳送預(yù)裝載寄存器至實(shí)際寄存器。這表示在物理上這個(gè)寄存器對(duì)應(yīng)2個(gè)寄存器:一個(gè)是我們可以寫入或讀出的寄存器,稱為預(yù)裝載寄存器,另一個(gè)是我們看不見的、無(wú)法真正對(duì)其讀寫操作的,但是在使用中真正起作用的寄存器,稱為影子寄存器?;径〞r(shí)器—TIM6&TIM7圖中還有指向兩個(gè)不同方向的圖標(biāo)。指向右下角的圖標(biāo)表示一個(gè)事件(可以是觸發(fā)事件輸入,也可以是事件輸出)。指向右上角的圖標(biāo)表示中斷和DMA輸出。在圖中的自動(dòng)重裝載寄存器有影子寄存器,它的左邊有一個(gè)帶有“U”字母(代表更新Update)的事件圖標(biāo),表示在更新事件生成時(shí)就把自動(dòng)重裝載寄存器內(nèi)容拷貝到影子寄存器內(nèi)?;径〞r(shí)器—TIM6&TIM7時(shí)鐘源定時(shí)器要實(shí)現(xiàn)定時(shí),那么首先需要時(shí)鐘源,基本定時(shí)器的時(shí)鐘源只能來(lái)自內(nèi)部時(shí)鐘,是由CK_INT(84MHz)提供。定時(shí)器的時(shí)鐘不是直接來(lái)自APB1或APB2,而是來(lái)自輸入為APB1或APB2的一個(gè)倍頻器。當(dāng)TIM6和TIM7的控制寄存器1(TIMx_CR1)的CEN位置1時(shí),內(nèi)部時(shí)鐘即向預(yù)分頻器(功能框圖中的第③部分)提供時(shí)鐘,也就是啟動(dòng)基本定時(shí)器?;径〞r(shí)器—TIM6&TIM7控制器定時(shí)器控制器,包含有一個(gè)觸發(fā)輸出控制器??刂破魍ㄟ^(guò)定時(shí)器配置寄存器(TIMx_CR)實(shí)現(xiàn)對(duì)定時(shí)器功能配置??刂破鲗?shí)現(xiàn)對(duì)定時(shí)器的復(fù)位、使能以及計(jì)數(shù)的控制,更簡(jiǎn)單理解,就是它控制CK_INT時(shí)鐘是否可以正常傳輸?shù)絇SC預(yù)分頻器內(nèi)。觸發(fā)控制器是專門用于控制定時(shí)器輸出一個(gè)信號(hào),這個(gè)信號(hào)可以輸出到STM32內(nèi)部其他外設(shè)(作為其他外設(shè)的一個(gè)輸入信號(hào))?;径〞r(shí)器的觸發(fā)輸出功能專門用于ADC/DAC轉(zhuǎn)換觸發(fā)啟動(dòng)?;径〞r(shí)器—TIM6&TIM7計(jì)數(shù)器定時(shí)器實(shí)現(xiàn)定時(shí)的功能,我們已經(jīng)知道基本定時(shí)器的時(shí)鐘源是84MHz,如何實(shí)現(xiàn)準(zhǔn)確定時(shí)呢?這就是一個(gè)計(jì)數(shù)的過(guò)程,分別涉及到三個(gè)寄存器:計(jì)數(shù)器寄存器(TIMx_CNT)、預(yù)分頻寄存器(TIMx_PSC)、自動(dòng)重裝載寄存器(TIMx_ARR)。這三個(gè)寄存器都是16位有效數(shù)字,可設(shè)置的值為0~65535。預(yù)分頻器PSC有一個(gè)輸入時(shí)鐘CK_PSC和一個(gè)輸出時(shí)鐘CK_CNT。輸入時(shí)鐘來(lái)源于控制器部分(實(shí)際就是CK_INT),通過(guò)設(shè)置預(yù)分頻的數(shù)值,可以得到不同的CK_CNT,它實(shí)際計(jì)算的式子為:CK_CNT=CK_PSC/(PSC[15:0]+1)因?yàn)門IMx_PSC控制寄存器具有緩沖(影子寄存器),可以在運(yùn)行過(guò)程中改變它的數(shù)值,新的預(yù)分頻數(shù)值將在下一個(gè)更新事件時(shí)起作用?;径〞r(shí)器—TIM6&TIM7計(jì)數(shù)器基本定時(shí)器只能遞增(向上計(jì)數(shù)),在定時(shí)器使能后(CEN置1),計(jì)數(shù)器COUNTER根據(jù)CK_CNT頻率向上計(jì)數(shù),即每來(lái)一個(gè)CK_CNT脈沖,TIMx_CNT值就加1,當(dāng)TIMx_CNT值與TIMx_ARR的設(shè)定值相等時(shí)就自動(dòng)生成更新事件(也可以產(chǎn)生DMA請(qǐng)求、產(chǎn)生中斷信號(hào)或者觸發(fā)DAC同步電路),并且TIMx_CNT自動(dòng)清零,然后重新開始計(jì)數(shù),不斷重復(fù)上述過(guò)程。因此我們只要設(shè)定TIMx_PSC和TIMx_ARR這兩個(gè)寄存器的值就可以控制事件生成時(shí)間。對(duì)應(yīng)的就是程序中定時(shí)器預(yù)分頻設(shè)置和定時(shí)器周期。STM32CubeMX生成工程定時(shí)器基本設(shè)置初始化結(jié)構(gòu)體Prescaler:定時(shí)器預(yù)分頻設(shè)置,時(shí)鐘源經(jīng)過(guò)該分頻器才是定時(shí)器時(shí)鐘,它設(shè)定TIMx_PSC寄存器的值。可設(shè)置值范圍為0~65535,實(shí)現(xiàn)1至65536分頻(實(shí)際分頻系數(shù)=TIMx_PSC+1),假設(shè)設(shè)置Prescaler=83,這樣分頻后的時(shí)鐘是84MHz/(83+1)=1MHz。CouterMode:定時(shí)器計(jì)數(shù)方式,基本定時(shí)器只能向上計(jì)數(shù),即TIMx_CNT只能從0開始遞增。默認(rèn)配置就是向上計(jì)數(shù)模式。Period:定時(shí)器周期,可設(shè)置值為0~65535,設(shè)定TIMx_ARR寄存器值。在定時(shí)器預(yù)分頻我們已經(jīng)得到分頻后的時(shí)鐘為1MHz。Period的值我們?cè)O(shè)置為999,這樣,定時(shí)器產(chǎn)生中斷的頻率為:1MHz/(999+1)=1KHz,即為1ms的定時(shí)周期。定時(shí)器基本設(shè)置初始化結(jié)構(gòu)體ClockDivision:時(shí)鐘分頻,設(shè)置定時(shí)器時(shí)鐘CK_INT頻率與數(shù)字濾波器采樣時(shí)鐘頻率分頻比,基本定時(shí)器沒(méi)這個(gè)功能,這個(gè)跟通道相關(guān)。RepetitionCounter:重復(fù)計(jì)數(shù)器,屬于高級(jí)控制寄存器專用寄存器位,利用它可以非常輕松控制輸出PWM的個(gè)數(shù)。定時(shí)器句柄結(jié)構(gòu)體Instance:TIM寄存器基地址。Init:定時(shí)器基本設(shè)置初始化。Channel:定時(shí)器通道的選擇,有四個(gè)通道。hdma[7]:定時(shí)器DMA相關(guān)。有TIMx_CH1、TIMx_CH2、T

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論