打開(kāi)CubeMX軟件,新建工程。

輸入芯片型號(hào)。

根據(jù)封裝選擇列表中的芯片,我的是LQFP144封裝,雙擊此項(xiàng)。

在Project Manager選項(xiàng)卡中,配置工程名、編譯工具,如下圖所示。

在Pinout&Configuration選項(xiàng)卡中,配置System的Debug為Serial Wire,否則可能無(wú)法下載程序。

RCC選擇高速外部時(shí)鐘。

根據(jù)電路原理圖,可知LED7對(duì)應(yīng)PC6管腳。


本實(shí)驗(yàn)要讓PC6管腳輸出PWM波形,實(shí)現(xiàn)LED7呼吸燈效果。
找到PC6,選中TIM3_CH1。

找到TIM3,通道1配置PWM輸出。

查找STM32參考手冊(cè)時(shí)鐘圖,找到TIM3時(shí)鐘的位置在APB1上。

在CubeMX上配置APB1 Timer定時(shí)器時(shí)鐘頻率為72MHz。

配置TIM3_CH1參數(shù),這里涉及到到計(jì)算的問(wèn)題,具體說(shuō)一下。

如上圖PWM產(chǎn)生原理:
定時(shí)器從0開(kāi)始計(jì)數(shù)
0-t1時(shí)段,輸出低電平
t1-t2時(shí)段,輸出高電平
當(dāng)定時(shí)器計(jì)數(shù)值達(dá)到ARR時(shí)溢出,完成一個(gè)周期
輸出邏輯電平方波,如上圖紅線所示。
PWM頻率計(jì)算公式:
PWM頻率 = 定時(shí)器時(shí)鐘頻率/(AutoReloadRegister + 1)/(PSC + 1)
簡(jiǎn)單推導(dǎo)一下PWM頻率是如何計(jì)算的:
一個(gè)PWM波周期t2的大小,也就是從0計(jì)數(shù)到ARR所需要的時(shí)間,每一個(gè)定時(shí)器時(shí)鐘周期計(jì)數(shù)一次,總共計(jì)數(shù)ARR次之后溢出完成一個(gè)周期。

占空比計(jì)算公式:CCRx/ARR。
回到CubeMX工程,TIM3參數(shù)設(shè)置如下,
ARR=500-1,PSC=72-1,Pulse=170
占空比大概是Pulse/ARR約等于50%,PWM頻率2000Hz。

保存,生成代碼。

打開(kāi)工程。

在MDK中main.c添加如下代碼。

主函數(shù)比較簡(jiǎn)單,i值逐漸增大,占空比隨之增大,LED亮度逐漸增加。
當(dāng)i值為299時(shí),fx值變?yōu)?,從下一個(gè)循環(huán)開(kāi)始i值開(kāi)始逐漸減小,占空比隨之減小,過(guò)程中LED亮度逐漸減弱。
編譯下載到開(kāi)發(fā)板,可以看到如下呼吸燈效果。
審核編輯:劉清
-
PWM
+關(guān)注
關(guān)注
116文章
5872瀏覽量
225724 -
STM32
+關(guān)注
關(guān)注
2310文章
11162瀏覽量
373527 -
呼吸燈
+關(guān)注
關(guān)注
10文章
117瀏覽量
44106
原文標(biāo)題:STM32中PWM的配置與應(yīng)用詳解
文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
STM32CubeMx入門(mén)教程(4):PWM應(yīng)用
STM32CubeIDE下配置STM32F103輸出帶死區(qū)的互補(bǔ)PWM波
STM32中如何配置PWM死區(qū)時(shí)間?
記錄Rt-Thread中STM32輸出PWM配置過(guò)程
如何在STM32中配置PWM死區(qū)時(shí)間資料下載
使用STM32輸出PWM波形
STM32G030F6使用CubeMx配置PWM實(shí)驗(yàn)
【Rt-Thread】STM32輸出PWM
STM32CUBEMX開(kāi)發(fā)GD32F303(12)----輸出PWM及修改PWM頻率與占空比
STM32無(wú)法正常輸出PWM信號(hào)的原因及解決方法
PWM輸出配置方法
演示STM32中PWM的配置與應(yīng)用
評(píng)論