1. 程式人生 > >STM32_TIM輸出PWM波形

STM32_TIM輸出PWM波形

前言

今天講解“STM32F103  TIM輸出PWM波形”,提供的軟體工程支援最大輸出18MHz的PWM波形,函式介面只有兩個引數:頻率Freq 和 佔空比Dutycycle。

定時器的功能很強大,今天講解的PWM屬於定時器中比較輸出的功能,難度算一般吧(懂了的人決定很簡單),因為使用了比較的功能。

PWM在實際應用中特別廣泛,可能在校的學生不是很瞭解,但對於很多工作的人來說PWM的應用基本上遍佈整個電子化的時代。對於電子相關專業的學生來說,訊號發生器都不陌生,訊號發生器就是PWM典型的應用。

每天講解的不僅僅是基礎,而是重點,不起眼的重點,容易被人忽視的重點。關注微信公眾號“EmbeddDeveloper

”還有更多精彩等著你。

 

本文特點:1.提供講解的軟體工程; 2.圖片程式碼比直接貼出原始碼容易閱讀。

本著免費分享的原則,將講解的工程原始碼分享給大家,還望看到的朋友關注一下微信公眾號,並將文章分享給你的朋友。

下載

提供下載的“軟體工程”都是在硬體板子上進行多次測試、並保證沒問題才上傳至360雲盤。

今天的軟體工程下載地址(360雲盤):

STM32F10x的資料可以在我360雲盤下載:

內容講解

工程概要說明: 今天配置定時器2通道1輸出PWM波形(PA0口輸出1KHz、20%佔空比),可根據情況修改其他TIM、其他通道。

注意:最大頻率和佔空比有一定關係。

佔空比等於1%時, 最大頻率為360KHz

佔空比等於50%時,最大頻率為18MHz

關於“STM32F103  TIM輸出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的晶片都適用。

最後

如果覺得內容適合你(如:內容易讀易懂等),你又想了解更多相關內容,請關注公眾號,新內容持續更新中,後期將會有更多優秀內容出現。

贊是一種鼓勵、分享是最好的支援!


相關推薦

STM32_TIM輸出PWM波形

前言 今天講解“STM32F103  TIM輸出PWM波形”,提供的軟體工程支援最大輸出18MHz的PWM波形,函式介面只有兩個引數:頻率Freq 和 佔空比Dutycycle。 定時器的功能很強大,今天講解的PWM屬於定時器中比較輸出的功能,難度算一般吧(懂了的人決定很

STM32f103ZET6 TIM8輸出PWM波形

自動 裝載 產生 初始 輸出 時鐘 void 說明 nbsp 定時器8屬於高級定時器,只存在於大容量產品的103系列中,定時器8輸出PWM波形時與通用定時器2、3、4、5不同,必須同時開啟主輸出(TIM8->BDTR|=0x8000;)才能產生PWM波,其配置如下:

51微控制器輸出pwm波形

#define FOSC 11059200L #define T1MS (65536-FOSC/12/1000) unsigned char count_1; unsigned char count_2; unsigned char duty_cycle_1; unsign

STM32定時器輸出帶有死區時間的PWM波形

要求得到下列波形,死區時間為1us,CH1,CH2,CH3之間的相位差為3us,頻率為50KHz main.c /********************************************* 標題:定時器輸出帶有死區時間的PWM波形 軟體

STM32定時器輸出PWM頻率和步進電機控制速度計算

內部 定時 .cn 但是 nbsp 返回 定時器 開發 r12 1、STM32F4系列定時器輸出PWM頻率計算 第一步,了解定時器的時鐘多少:   我們知道AHP總線是168Mhz的頻率,而APB1和APB2都是掛在AHP總線上的。 (1)高級定時器timer1, time

STM32輸出PWM

-s font scale bsp 上拉 pwm puts config _cmd 最近要用STM32來輸出PWM,花了一個晚上寫完了,記錄一下 (我用的是STM32F303CCT6) 1.打開定時器時鐘 RCC_APB1PeriphClockCmd(RCC_APB1Pe

A.01.09—模組的輸出PWM低端輸出

PWM輸出在汽車上的應用也比較多,它有三種不同的實現方式。  第一種由軟體實現,即軟體設定對一個輸出口拉高和拉低的時間,形成時高時低的PWM控制;但這種方式目前用得不多,這是由使用需求和軟體本身的特性決定的。如很多功能都要求較高的頻率,比如鹵素燈的PWM控制要求頻率大於100Hz,這種情況下如採用軟體定時來實

51微控制器按鍵控制輸出pwm的佔空比

之前說到利用51微控制器輸出pwm,但是輸出的pwm是固定佔空比的,如果想要改變佔空比,還得回過頭來修改程式並重新燒寫進微控制器。這樣做的話不但麻煩、效率低,還又把晶片的可燒寫次數減少了一次,雖然51的晶片現在很便宜,但能省點就省點,能不浪費就不浪費,哈哈,開玩笑啦!最主要的

Mbed OS 輸出 PWM訊號

   PWM 脈寬調製是通過改變脈衝訊號的波形來控制模擬量的方法。PWM可以用來控制燈光亮度,電機速度,電源電壓等等。 PWM 訊號是一種脈衝訊號,具有下面幾個特點: PWM 頻率    PWM訊號的週期是不變的,而高電平的寬度是變化的。 PWM 佔空比   PWM

用邏輯分析儀採集PWM波形,出現斷斷續續的脈衝解決辦法

有時候用邏輯分析儀採集PWM波形時,會發現採集到的PWM波形在一段規則的PWM後會出現一段較長的高電平或低電平,這是因為邏輯分析儀的上位機採集引數設定不合適,應該適當調高取樣頻率。 10M Samples          1MHz 10M Samples        

STM32-如何使用引腳複用功能輸出PWM

#define LED0_PWM_VAL TIM3->CCR2 //比較暫存器(TIM3通道2),可以調節PWM佔空比, int main(void) {  u16 led0pwmval=0;u8 dir=1;  Stm32_Clock_Init(9); //系統時

STM32 通用定時器的輸出PWM功能 學習筆記

首先來說,你要使用PWM模式你得先選擇用哪個定時器來輸出PWM吧!除了TIM6、TIM7這兩個普通的定時器無法輸出PWM外,其餘的定時器都可以輸出PWM,每個通用定時器可以輸出4路PWM,高階定時器TIM1、TIM8每個可輸出7路PWM。選好定時器及通道後,下一步就是要使能

PMSM控制01-在MATLAB/sinmulink模擬實現-計時器比較法輸出SVPWM波形

由於本人轉入新能源汽車電機控制行業,因此日後會陸續更新汽車電機、控制器、控制演算法、電路等的文章。當然別的DIY文章也會繼續更,工作、興趣、生活,該有的都得有。 以下正文: simulink中實

STM32F103_TIM3輸出PWM波實現全綵呼吸燈

一、LED燈 1. 必須是全綵RGB_LED燈 2. 通過不同的紅綠藍三色LED混合出256種顏色,同電腦畫圖裡的調色RGB888,每個燈各用8位控制其亮度,其中全滅表示黑色。 二、 1. LED亮度等級表 /* LED亮度等級 PWM表,指數曲線 ,此表使用工程目

PWM波形的simulink模擬

1.PWM波形的原理 參考《數字與模擬通訊系統》對PWM產生的原理性描述。 PWM波的形成本質上同樣為調製。被取樣的訊號為調製訊號,脈衝訊號作為載波訊號。產生的PWM波為最終的已調訊號。 產生PWM波的流程如下: 瞬時取樣→取樣保持→波形合成→電平比較→

STM32F103定時器輸出PWM波控制直流電機

       這個暑假沒有回家,在學校準備九月份的電子設計競賽。今天想給大家分享一下STM32高階定時器輸出PWM波驅動直流電機的問題。。        要想用定時器輸出的PWM控制直流電機,,首先要

stm32f407 輸出pwm

1.    pwm:脈衝寬度調製是一種模擬控制方式,其根據相應載荷的變化來調製電晶體基極或MOS管柵極的偏置,來實現電晶體或MOS管導通時間的改變,從而實現開關穩壓電源輸出的改變。這種方式能使電源的輸出電壓在工作條件變化時保持恆定,是利用微處理器的數字訊號對類比電路進行控制的

stm32 TIM輸出pwm有些通道不能輸出的問題

stm32f103RC今天晚上在玩舵機,看了一下例程的程式碼,於是想換個通道實踐一下,於是想把TIM1的通道由ch1換到ch2,於是就把搞了PA8換成了PA9(資料手冊上有),把TIM_OC1PreloadConfig換成了TIM_OC2PreloadConfig,試了一下不

STM32 CubeMX輸入捕獲測量PWM波形頻率與佔空比

使用的開發板是官方的STM32F412ZGTx NUCLEO開發板。本次主要是為了對PWM波形進行脈寬和頻率的測量。很多的工程使用的是軟體對同一個通道進行3次捕獲,比較耗費系統資源,本次介紹使用硬體進行捕獲,儘可能降低程式碼的工作量。首先開啟CubeMX,做如下設定:1.先設

STM32基礎知識2-分享PWM輸入模式捕捉4路PWM波形的週期和佔空比

前幾天分享過一個帖子,因為網速原因沒有上傳原始碼,看到有人回覆我說實驗不成功,那麼好吧!這是我的錯誤,這次就將原始碼和我的心得體會分享出來,供大家下載測試和成長。我其實也是菜鳥一個,如果講解的地方有啥不對,或是程式設計的不好,歡迎大家提出意見,讓我們一起來學習進步。ffic