電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 44|回復(fù): 0
收起左側(cè)

STM32CubeMX之定時器產(chǎn)生PWM

[復(fù)制鏈接]

454

主題

454

帖子

2398

積分

三級會員

Rank: 3Rank: 3

積分
2398
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-3-9 22:19:00 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本章介紹STM32定時器PWM模式的使用方法。STM32的定時器有多路PWM輸出通道,可以配置多路同時輸出不同占空比的PWM波。前期準(zhǔn)備:
  •     STM32硬件電路板及仿真器(以STM32F072C8單片機(jī)為例)
  •     Keil v5以上版本(MDK-ARM)
    首先新建工程后,配置系統(tǒng)時鐘為48MHz(具體步驟參考之前的文章)。配置TIM3的時鐘為內(nèi)部時鐘,Channel1和Channel2兩通道為PWM輸出模式,配置完后可以看到相應(yīng)的GPIO也會顯示為TIM3_CH1和TIM3_CH2。TIM3基本定時參數(shù)的設(shè)置可參考上一篇文章STM32CubeMx之TIM定時中斷。假設(shè)設(shè)置CH1的PWM頻率為10kHZ,占空比為30%,CH2的頻率為10kHz,占空比為40%,則設(shè)置參數(shù)如下圖。

    PWM頻率 = TIM分頻后的頻率 / 計數(shù)周期 = 48MHz / 4800=10kHz。PWM占空比 = Pluse / Counter Period。
    CH1和CH2可以單獨設(shè)置。 PWM模式有mode1和mode2兩種模式,其區(qū)別在于:
  • PWM mode1 計數(shù)值大于比較值,輸出有效電平,否則輸出無效電平。

  • PWM mode2 計數(shù)值大于比較值,輸出無效電平,否則輸出有效電平。

            其中有效電平即為CH Polarity所設(shè)置的電平。
    需要說明的是有的定時器的輸出通道可以影視到不同的IO口上,用戶可以自己選擇,上圖中選擇TIM3的通道1和通道2后,默認(rèn)的PB3和PB4端口被設(shè)置為TIM3_CH1和TIM3_CH2功能。實際上,TIM3的通道1和通道2也可以映射到PA6和PA7上,用戶可以手動更改。


    設(shè)置完成后點擊 Generate Code生成代碼。可以看到TIM3的初始化已經(jīng)自動生成,在后面添加PWM啟動的代碼即可,如下圖。

    如果需要改變PWM的頻率和占空比,調(diào)用以下函數(shù)。


    編譯程序后,下載到電路板,用示波器觀察相應(yīng)引腳的波形。

    可以看到頻率是10.080kHz(由于使用的內(nèi)部RC時鐘,有一定誤差),占空比39.999%,說明程序沒有問題。
  • 回復(fù)

    使用道具 舉報

    發(fā)表回復(fù)

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表