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