stm32輸出比較模式與PWM模式總結(jié)_第1頁
stm32輸出比較模式與PWM模式總結(jié)_第2頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 stm32輸出較模式與PWM模式總結(jié)章錄前最近因為從標(biāo)準(zhǔn)庫過渡到hal庫,重新溫習(xí)了遍定時器相關(guān)的功能,在stm32中定時器經(jīng)常被作輸出PWM波,在此對定時器常來輸出PWM的兩種模式:輸出較模式和PWM模式做個總結(jié)本次實驗使stm32G431,使cubemx成底層代碼。、輸出較模式和PWM模式輸出較模式和PWM模式都可以來輸出PWM波,在功能上兩者有相同之處,對于個定時器這兩種式都可以做到四路輸出PWM,每路PWM占空都可調(diào),也有不同之處,輸出較模式可以便的調(diào)節(jié)每路PWM波的頻率,可以輸出四路頻率不同,占空不同的PWM。但是PWM模式如果想要調(diào)節(jié)PWM波的頻率,那么就只能重新設(shè)置預(yù)分頻系數(shù)或

2、者動重裝載寄存器ARR,并且輸出的四路PWM頻率必定致。PWM模式是輸出較模式的集。、PWM模式1.原理在預(yù)分頻系數(shù)確定的條件下,PWM模式的信號頻率是由動重裝載寄存器ARR來確定的,占空則由較寄存器CCR來確定。PWM模式分為兩種,PWM1和PWM2,都可以設(shè)置計數(shù)器遞增計數(shù)或者遞減計數(shù)。具體如下表在使PWM模式時,我們只需要設(shè)置預(yù)分頻系數(shù)PSC,動重裝載值A(chǔ)RR,即可確定PWM具體頻率,即 PWM頻率 =(系統(tǒng)時鐘頻率)/(ARR+1)*(PSC+1)(單位:Hz)這以PWM1的遞增計數(shù)式為例,假定系統(tǒng)時鐘頻率設(shè)置為80MHz,那么當(dāng)ARR取999,PSC取79的時候,PWM的頻率即為1k

3、Hz。配置完成后對時鐘進(jìn)初始化,此時時鐘開始以預(yù)分頻之后的頻率即1MHz開始計數(shù),當(dāng)CNT的值于設(shè)置的CCR的值時,PWM輸出引腳輸出為電平,當(dāng)CNT的值于CCR的值時,PWM輸出引腳輸出為低電平,當(dāng)CNT計數(shù)ARR時,計數(shù)器產(chǎn)上溢事件,計數(shù)器的值更新為0,以此往復(fù)。2.配置cubemx 1、先需要對時鐘頻率進(jìn)設(shè)置,這設(shè)置系統(tǒng)時鐘頻率為80MHz2、此處選TIM3通定時器,配置時鐘來源為內(nèi)部時鐘,選擇Channel1和Channel2的PWM模式3、配置PSC為79,ARR為999,向上計數(shù)模式,使能動重載預(yù)裝載,Channel1選擇PWM1模式,pulse值取200,這的pulse就是指較寄

4、存器CCR,理論上計算可得PWM頻率為1KHz,占空為20%Channel2的pulse值取300,其余和Channel1致4、最后,配置project相關(guān)參數(shù),成代碼。3.代碼及驗證cubemx配置成完成后只需要再啟動下定時器即可完成PWM的輸出HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);_HAL_TIM_CLEAR_IT(&htim3,TIM_CHANNEL_1);HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_2);_HAL_TIM_CLEAR_IT(&htim3,TIM_CHANNEL_2); 此處實驗使的是TIM3的Cha

5、nnel1和Channel2,相應(yīng)的引腳為PA6、PA7,下載到開發(fā)板上邏輯分析儀可以得到如下波形可以看到波形符合預(yù)期,當(dāng)然在代碼中也可以通過_HAL_TIM_SET_COMPARE(HANDLE, CHANNEL, COMPARE)來重新設(shè)置CCR更改PWM的占空或者通過_HAL_TIM_SET_AUTORELOAD(HANDLE, AUTORELOAD)來重新設(shè)置ARR來改變PWM的頻率三、輸出較模式1.原理在上的PWM模式下我們看發(fā)現(xiàn)Channel1和Channel2的占空可以不樣,但是其頻率是致的,那么如果需要在個定時器下的多個通道分別輸出頻率不同,占空不同的PWM那么就需要使輸出較模

6、式了。輸出較模式和PWM模式的原理很相似,在輸出較模式輸出PWM的實驗中,有點不同的是PWM1遞增模式下CNT與CCR作較,若CNT于CCR則輸出為電平,若CNT于CCR則輸出為低電平,并且在CNT計數(shù)ARR時,CNT會更新0并產(chǎn)上溢事件。但是輸出較模式在CNT與CCR不斷做較的過程中,若CNT等于CCR,產(chǎn)的則是電平翻轉(zhuǎn),并且會產(chǎn)中斷,通過對中斷回調(diào)函數(shù)的編寫,就能夠?qū)崿F(xiàn)多路不同頻率信號的輸出。例如,我們定義duty作為占空,定義pulse作為周期計數(shù)數(shù),若duty為10%,pulse為10000,取ARR為最值65535(在輸出較模式中ARR沒啥,定義成最值就不經(jīng)常更新CNT為0了)系統(tǒng)時

7、鐘頻率為80MHz,預(yù)分頻系數(shù)為79,則預(yù)分頻之后的時鐘頻率為1MHz,那么當(dāng)計pulse個數(shù),則時間為10ms,占空為10%,則所需電平時間為1ms。當(dāng)?shù)诖蜟NT等于CCR時,進(jìn)中斷回調(diào)函數(shù),讓CCR加上(pulse-pulse*duty),即9ms后再次進(jìn)反轉(zhuǎn)電平,此時PWM持續(xù)了9ms的低電平;當(dāng)?shù)诖蜟NT等于CCR是,進(jìn)中斷回調(diào)函數(shù),讓CCR加上(pulse*duty),即1ms后再進(jìn)反轉(zhuǎn)電平,此時PWM持續(xù)了1ms的電平;這樣即可完成輸出較PWM的配置。 有可能會問,為什么CNT可以加這么多數(shù),那是因為當(dāng)CNT從65535溢出后,仍然會從頭開始計數(shù),對程序沒有影響,具體如下圖。2.配

8、置cubemx1、依然配置系統(tǒng)時鐘頻率為80MHz,此處選TIM3通定時器,配置時鐘來源為內(nèi)部時鐘,選擇Channel1和Channel2的輸出較模式 2、如圖配置參數(shù),需要注意的是動重載預(yù)裝載和輸出較預(yù)裝載都需要關(guān)閉,模式需要選擇toogle on match3、最后配置project相關(guān)參數(shù),成代碼2.代碼及驗證cubemx配置成完成后,先需要啟動下定時器,清除中斷標(biāo)志位HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);_HAL_TIM_CLEAR_IT(&htim3,TIM_CHANNEL_1);HAL_TIM_PWM_Start(&htim3,TIM_CH

9、ANNEL_2);_HAL_TIM_CLEAR_IT(&htim3,TIM_CHANNEL_2);然后對中斷回調(diào)函數(shù)進(jìn)編寫 _HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,OC_Count + OC_Channel1_Pulse - OC_Channel1_Duty*OC_Channel1_Pulse/100);_HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,OC_Count + OC_Channel2_Pulse - OC_Channel2_Duty*OC_Channel2_Pulse/100);_HAL_TIM_SET

10、_COMPARE(&htim3,TIM_CHANNEL_2,OC_Count + OC_Channel2_Duty*OC_Channel2_Pulse/100);此處OC_Channel1_Pulse和OC_Channel2_Pulse 我就是前“原理”中的pulse,OC_Channel1_Duty和OC_Channel2_Duty就是“原理”中的duty,有定義了兩個標(biāo)志位,通過判斷引腳電平,使之能夠間次調(diào)。其中duty和pulse的值可以設(shè)置,這由于我duty定義的是整形,所以在代碼中對其相應(yīng)的除以了100,相當(dāng)于轉(zhuǎn)化為了數(shù)。若取OC_Channel1_Duty為10%,OC_Channel1_Pulse為10000,則Channel1頻率為100Hz,占空為10%若取OC

溫馨提示

  • 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

提交評論