STM32F407通用定時器輸入捕獲_第1頁
STM32F407通用定時器輸入捕獲_第2頁
STM32F407通用定時器輸入捕獲_第3頁
STM32F407通用定時器輸入捕獲_第4頁
STM32F407通用定時器輸入捕獲_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、通用定時器輸入捕獲通用定時器作為輸入捕獲的使用。我們用TIM5的通道1 (PAO)來做輸入捕獲,捕獲PAO上 高電平的脈寬(用KEY.UP按鍵輸入高電平),通過串口來打印高電平脈寬時間。輸入捕獲模式可以用來測量脈沖寬度或者測量頻率,我們以測量脈寬為例,用個簡圖來 說明輸入捕獲的原理:如圖所示,就是輸入捕獲測量高電平脈寬的原理,假定定時器匸作在向上計(jì)數(shù)模式,圖中 112時間,就是我們需要測量的高電平時間。測量方法如下:首先設(shè)置定時器通道x為上升沿 捕獲,這樣,tl時刻,就會捕獲到當(dāng)前的CNT值,然后立即清零CNT,并設(shè)置通道x為下降沿捕 獲.這樣到t2時刻,又會發(fā)生捕獲事件,得到此時的CNT值,

2、記為CCRx2這樣,根據(jù)定時器 的計(jì)數(shù)頻率,我們就可以算岀tlt2的時間,從而得到高電平脈寬。在tl2之間,可能產(chǎn)生N 次定時器溢出,這就要求我們對定時器溢出,做處理,防止高電平太長,導(dǎo)致數(shù)據(jù)不準(zhǔn)確。如圖 所示,trt2之間,CNT計(jì)數(shù)的次數(shù)等于:N*ARR+CCRx2,有了這個計(jì)數(shù)次數(shù),再乘以CNT的計(jì) 數(shù)周期,即可得到t2-tl的時間長度,即高電平持續(xù)時間。S1K32F4的定時器,除了 TIM6和TIM7,其他定時器都有輸入捕獲功能。STM32F1的輸入捕 獲,簡單的說就是通過檢測TIMx_CHx 的邊沿信號,在邊沿信號發(fā)生跳變(比如上升沿/下降沿) 的時候,將當(dāng)前定時器的值(TIMx_C

3、NT)存放到對應(yīng)的通道的捕獲/比較寄存器(TIMx_CCRx)里 面,完成次捕獲。同時還可以配置捕獲時是否觸發(fā)中斷/DMA等。這里我們用TIM5_CH1來捕獲 高電平脈寬。捕獲/比較通道(例如:通道1輸入階段)接下來介紹我們需要用到的些寄存器配置,需要用到的寄存器:TIMx_ARR. TIMx_PSC.TIMx_CCMRl、TIMx_CCER、TIMx_DIER、TIMx.CRl. TIMx.CCRl (這里的 x=5) 首先TIMx.ARR和TIMx.PSC,這兩個寄存器用來設(shè)H動重裝載值和TIMx的時鐘分頻。捕獲/比較模式寄存器1: TIMx.CCMRl,這個寄存器在輸入捕獲的時候,非常有

4、用:TIJfe捕獲/比較模式寄存器1 (TIMx_CCMRl)TIMx capture/compare mode register 1偏移地址:0x18 復(fù)位值:0x00001514131211109876543210OC2CE |OC2MQOOC2PE | OC2FEOC1CE|OC1M2:0)OC1PE|OC1FEIC2F3:0IC2PSC1:0 .V)IC1F3:OIC1PSC1:OKZXX1 -VJrwrwrwrwrwrwrwrwrwrwrwrwrwrwrww當(dāng)在輸入捕獲模式下使用的時候,對應(yīng)圖的第二行描述,從圖中可以看出,TIMx_CCMRl是針對2個通道的配置,低八位7: 0用于捕

5、獲/比較通道1的控制,而高八位15: 8則用于捕 獲/比較通道2的控制,因?yàn)門IMx還有CCMR2這個寄存器,所以可以知道CCMR2是用來控制通 道3和通道4 (詳見JP1未反相(在 門控模式或編碼器模式下執(zhí)行觸發(fā)操作)。0C1低電平有效 位可針對觸發(fā)或捕01:反相/下降沿觸發(fā)電路對TIxFP 1下降沿敏感(在復(fù)位模式、外部時鐘模 式或觸發(fā)模式下執(zhí)行捕獲或觸發(fā)操作) TIxFPl反相(在門控模式或編碼器模式下執(zhí)行觸發(fā)操作)c10:保留.不使用此配宜。11:非反相/上升沿和下降沿均觸發(fā)電路對TIxFPl上升沿和下降沿都敏感(在復(fù)位模式、 外部時鐘模式或儺發(fā)模式下執(zhí)行捕獲或觸發(fā)操作)位 0 CC1

6、E:捕獲/比較 /輸出使能(Capture/Compare 1 output enable)CC1通道配宜為輸出:0:關(guān)閉-OC1未激活1:開啟在相應(yīng)輸出引腳上輸出OC1信號CC1通道配宜為輸入:此位決定了是否可以實(shí)際將il數(shù)器值捕獲到輸入捕獲/比較寄存器1 (TIMx_CCRl)中。0:禁止捕獲1:使能捕獲所以要使能輸入捕獲,必須設(shè)置CClE=b而CC1P則根據(jù)自己的需要來配置。接下來我們再看看DMA/中斷使能寄存器:TIMx.DIER,該寄存器的各位描述見圖15141312 )1109876043210保見TDECC4DE |CC3DECC2DECCIDE |IDE|TIE保尿CC4IEC

7、C3IECC2IEcciie|U1E |rwrwrwrwrwrwrvnrrwrvrw位5保gb始終讀為0.位4CC4IE:允許捕獲兒匕較40浙(CapturCompare 4 interrupt enable) 0:禁止抽獲/比較4中斷:1=允許抽獲/比較4中斷。位3CC3IE:允許拖獲/L匕較3H新(CapturCompare 3 interrupt enable) 0:禁止摘擲比較3中斷:1:允詐福獲/上校3中斯位2CC2IE:允許捕獲兒匕較2小新(CapturCompare 2 interrupt enable) 0:禁止循獲/比較2中斷:1:允詐持獲/上較2中斷.位1CC1IE:允許捕

8、獲兒匕絞1小斷(CaptureCompare 1 interrupt enable) 0;禁止?jié)崼@/叱校1中斷:1;允許揚(yáng)獲/上較1中斷。位0UIE:允許史新中酊(Update interrupt enable) 0:菇止更新中h1:允許更新中斷.TIMx_ DIER寄存器各位描述我們需要用到中斷來處理捕獲數(shù)據(jù),所以必須開啟通道1的捕獲比較中斷,即CC1IE設(shè)置 為lo控制寄存器:TIMx_CRl,我們只用到了它的最低位,也就是用來使能定時器的。 控制寄存器1 (TIMx_CRl)1514131211109876543210保田CKD1:OARPECMS1:0DIROPMIRSUDISCENr

9、w rw m rw rv rw rw ru rw m*位4DIR:方向(Direction)0:計(jì)數(shù)器向上計(jì)數(shù):1:計(jì)數(shù)器向卜計(jì)數(shù)c注:當(dāng)計(jì)數(shù)君配迸為中央對齊模式或編碼赭模式時.該位為只或.位0CEN:使能計(jì)數(shù)器0:禁止計(jì)數(shù)器:1:使能計(jì)數(shù)器。注:在軟件設(shè)置了CEN位后.外祁時鐘.門控模式和綢碼器模氏才能工作。辿發(fā)模式可以H動 地通過硬件設(shè)迓CEN位。在單脈沖模式卜;當(dāng)發(fā)生更新事件時.CENf&h動清除。位 9:8 CKD:時鐘分頻(Clock division)此位域指示定時器時鐘(CK.INT)頻率與數(shù)字濾波器所使用的采樣時鐘(ETR、Tlx之間的分頻比.00: tDTS = tciciv

10、r?01: tDTS = 2 X tCJCINT?10: tDTS = 4 X tdCINT? 11:保留最后再來看看捕獲/比較寄存器1: TIMx.CCRl,該寄存器用來存儲捕獲發(fā)生時,TIMx.CNT 的值,我們從TIMx_CCRl就可以讀出通道1捕獲發(fā)生時刻的TIMx_CNT值,通過兩次捕獲(-次 上升沿捕獲,次下降沿捕獲的差值,就可以計(jì)算出高電平脈沖的寬度(注意,對于脈寬人長 的情況,還要計(jì)算定時器溢出的次數(shù))。=輸入捕獲庫函數(shù)配置:1)開啟TIM5時鐘,配置PA0為復(fù)用功能(AF2),并開啟下拉電阻。妥使用TIM5,我們必須先開啟TIM5的時鐘。同時我們妥捕獲TIM5_CH1上而的高

11、電平脈寬, 所以先配置PA0為帶下拉的復(fù)用功能,同時,為了讓PA0的復(fù)用功能選擇連接到TIM5.所以設(shè) 置PA0的復(fù)用功能為AF2,即連接到TIM5上面。開啟IM5時鐘的方法為:RCC_APBlPeriphClockCmd(RCC_APBlPeriph_TIM5,ENABLE);PAO/WKUP(PAO)I/O FTUSART2_CTS/UART4_TX/ETH_MII_CRS/_JTIMm_ETR/TIM5_C: !/ TIM8_ETR/EVENTOUTADC123 IN0/WKUP(4TIM.OCIPolarityConfig(TIM5, TIM.ICPolarity.Rising);/溢出時間總和/得到總的高電平時間temp=TIM5CHl_CAPTURE_STA&0X3F; temp*=OXFFFFFFFF;temp+=TIM5CHl_CAPTURE_VAL;printf CzHIGH:%lld usrn, temp); /打印總的高點(diǎn)平時間 TIM5CH1_CAPTURE_STA=O;/開啟下次捕

溫馨提示

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

評論

0/150

提交評論