我們?cè)谧銮度胧疆a(chǎn)品的開發(fā)過程中,有時(shí)需要輸出指定數(shù)目的脈沖。實(shí)現(xiàn)它的方法較多,這里介紹一種利用STM32定時(shí)器的單脈沖模式來實(shí)現(xiàn)的方法。
STM32定時(shí)器的單脈沖輸出功能,其實(shí)是定時(shí)器輸出比較功能的一個(gè)特殊應(yīng)用。即讓定時(shí)器在某個(gè)事件觸發(fā)后的一段時(shí)間產(chǎn)生指定脈寬的單脈沖信號(hào)。
計(jì)數(shù)器的啟動(dòng)通常可由從模式控制器控制,可由比較輸出模式或PWM輸出模式來產(chǎn)生波形。通過置位OPM@TIMx_CR1來在下一個(gè)更新事件時(shí)關(guān)閉計(jì)數(shù)器來實(shí)現(xiàn)單脈沖輸出。 

STM32定時(shí)器里有個(gè)重復(fù)計(jì)數(shù)器TIMx_RCR,當(dāng)它的值是個(gè)非0值N時(shí),計(jì)數(shù)器不再每次溢出【上溢或下溢】時(shí)都產(chǎn)生更新事件,而是當(dāng)發(fā)生第N+1次溢出時(shí)才產(chǎn)生更新事件。如果RCR=0的話,就是每次溢出都產(chǎn)生更新事件。 那么,當(dāng)把單脈沖輸出模式與RCR寄存器配合使用時(shí),就不難生成指定數(shù)目的脈沖個(gè)數(shù)。此時(shí)脈沖個(gè)數(shù)為TIMx_RCR的值加1。 
在上面原理的基礎(chǔ)上,通過使用STM32定時(shí)器的主從模式還可以方便地實(shí)現(xiàn)周期性地輸出指定數(shù)目的脈沖。 
假如按上圖所示,TIM2與TIM1主從連接,實(shí)現(xiàn)周期性的輸出5個(gè)脈沖。 TIM2 配置為主 觸發(fā)模式,觸發(fā)TIM1的計(jì)數(shù); TIMER1 配置為從 單脈沖輸出模式;TIM1_RCR=4;


關(guān)于上述內(nèi)容的更多細(xì)節(jié)可以點(diǎn)擊左下方的”閱讀原文”去下載AN4776,相關(guān)應(yīng)用的參考固件代碼,可以去www.st.com/stm32 搜索X-CUBE-TIMCOOKER下載。整個(gè)固件包解壓后的工程目錄如下所示,其中就有上面提到的兩種應(yīng)用的參考工程代碼。 
|