STM32CUBEMX開發(fā)GD32F303(13)----定時(shí)器TIM捕獲PWM測(cè)量頻率與占空比
概述
本章STM32CUBEMX配置STM32F103,并且在GD32F303中進(jìn)行開發(fā),同時(shí)通過開發(fā)板內(nèi)進(jìn)行驗(yàn)證。 本章STM32CUBEMX配置STM32F103輸出PWM,同時(shí)使用TIM測(cè)量PWM頻率和正占空比。 最近在弄ST和GD的課程,需要GD樣片的可以加群申請(qǐng):615061293 。
視頻教學(xué)
https://www.bilibili.com/video/BV14P411G7xh/
csdn課程
課程更加詳細(xì)。?https://download.csdn.net/course/detail/37152
樣品申請(qǐng)
https://www.wjx.top/vm/mB2IKus.aspx
生成例程
這里準(zhǔn)備了自己繪制的開發(fā)板進(jìn)行驗(yàn)證。?

查看原理圖,PA9和PA10設(shè)置為開發(fā)板的串口。

配置串口?

查看原理圖,PB0設(shè)置為PWM輸出管腳,PB10設(shè)置為定時(shí)器輸入捕獲管腳。?

配置時(shí)鐘樹
配置時(shí)鐘為64M。?

配置PWM
配置定時(shí)器1輸出pwm的頻率為1K。?

?

配置輸入捕獲

開啟中斷

keil配置
microlib 進(jìn)行了高度優(yōu)化以使代碼變得很小。 它的功能比缺省 C 庫(kù)少,并且根本不具備某些 ISO C 特性。 某些庫(kù)函數(shù)的運(yùn)行速度也比較慢,如果要使用printf(),必須開啟。?

代碼
在main.c中,添加頭文件,若不添加會(huì)出現(xiàn) identifier "FILE" is undefined報(bào)錯(cuò)。
函數(shù)聲明和串口重定向:
空比與頻率計(jì)算
占空比=(t1-t0)/(t2-t0) 頻率=(t2-t0)/時(shí)鐘頻率= =(t2-t0)/(64M/(psc+1))?

?周期需要2個(gè)上升沿去判斷,設(shè)定第一個(gè)上升沿time_flag由0->1,下降沿time_dowm_flag由0->1,此時(shí)就知道正占空比時(shí)間,當(dāng)在產(chǎn)生上升沿時(shí)候,就可以計(jì)算出周期使用的時(shí)間。?

變量定義
設(shè)置PWM占空比以及開啟輸入捕獲
回調(diào)函數(shù)
主函數(shù)
最后
以上的代碼會(huì)在Q_qun里分享。Q_qun:615061293。 或者關(guān)注『記帖』,持續(xù)更新文章和學(xué)習(xí)資料!?

測(cè)試結(jié)果
當(dāng)輸出1k頻率,30%正占空比。?


當(dāng)輸出4k頻率,60%正占空比。?

