前言
今天講解“STM32F103 TIM輸出PWM波形”,提供的軟件工程支持最大輸出18MHz的PWM波形,函數(shù)接口只有兩個參數(shù):頻率Freq 和 占空比Dutycycle。
定時器的功能很強大,今天講解的PWM屬于定時器中比較輸出的功能,難度算一般吧(懂了的人決定很簡單),因為使用了比較的功能。
PWM在實際應(yīng)用中特別廣泛,可能在校的學(xué)生不是很了解,但對于很多工作的人來說PWM的應(yīng)用基本上遍布整個電子化的時代。對于電子相關(guān)專業(yè)的學(xué)生來說,信號發(fā)生器都不陌生,信號發(fā)生器就是PWM典型的應(yīng)用。
本文特點:1.提供講解的軟件工程; 2.圖片代碼比直接貼出源代碼容易閱讀。
本著免費分享的原則,將講解的工程源代碼分享給大家,還望看到的朋友關(guān)注一下微信公眾號,并將文章分享給你的朋友。
下載
提供下載的“軟件工程”都是在硬件板子上進行多次測試、并保證沒問題才上傳至360云盤。
今天的軟件工程下載地址(360云盤):
https://yunpan.cn/cSftz7gAJFujm訪問密碼
STM32F10x的資料可以在我360云盤下載:
https://yunpan.cn/crBUdUGdYKam2訪問密碼 ca90
內(nèi)容講解
工程概要說明: 今天配置定時器2通道1輸出PWM波形(PA0口輸出1KHz、20%占空比),可根據(jù)情況修改其他TIM、其他通道。
注意:最大頻率和占空比有一定關(guān)系。
占空比等于1%時, 最大頻率為360KHz
占空比等于50%時,最大頻率為18MHz
關(guān)于“STM32F103 TIM輸出PWM波形”我把重要的幾點在下面分別講述:
一、RCC時鐘配置
該函數(shù)位于bsp.c文件下面;
使能RCC時鐘:RCC_APB2Periph_AFIO和 RCC_APB1Periph_TIM2;
這兩個時鐘是今天工程中重要的。
二、PWM輸出引腳
該函數(shù)位于timer.c文件下面;
配置PA0為PWM輸出引腳(這里的引腳需要和定時器的通道對應(yīng),否則沒有波形輸出),詳情請看數(shù)據(jù)手冊關(guān)于引腳的說明。
三、輸出PWM配置
該函數(shù)位于timer.c文件下面;
決定輸出頻率和占空比主要由這三個參數(shù)(TIM2_PRESCALER_VALUE、tim2_period、tim2_pulse)決定的。
以今天工程輸出1KHz,20%來舉例說明:
TIM2_PRESCALER_VALUE = 72M / 36M - 1 = 1
tim2_period = 36000 - 1
tim2_pulse = 7200
這三個怎么得來的請看代碼,今天工程輸出的波形如下圖:
四、今天的重點提示
A.細心研究過代碼的人會發(fā)現(xiàn)TIM_OCMode_PWM1,還有一個TIM_OCMode_PWM2,這兩個的區(qū)別是什么呢? 答案是:輸出的極性(也就是方向)不一樣。
這時候又有人問:那下面的輸出極性TIM_OCPolarity_High與上面的關(guān)系是什么呢?答案是:這兩個參數(shù)配合一起輸出決定PWM波形的極性。
也就是說不同參數(shù)可以達到一樣的效果,下圖參數(shù)的配置同樣可以輸出一樣的波形。
感興趣的朋友可以試著修改測試一下效果。
B.今天的工程可以設(shè)置周期性中斷(也就是1ms中斷一次),感興趣的朋友可以試著寫一下。使用串口打印測試的話,盡量頻率低一點,不然串口響應(yīng)不過來。
說明
今天提供的軟件工程基于STM32F103大容量芯片,其實只要適當修改工程的部分配置,STM32F1的芯片都適用。
最后
如果覺得內(nèi)容適合你(如:內(nèi)容易讀易懂等),你又想了解更多相關(guān)內(nèi)容,請關(guān)注公眾號,新內(nèi)容持續(xù)更新中,后期將會有更多優(yōu)秀內(nèi)容出現(xiàn)。