學習筆記:
脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫,簡稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測量、通信到功率控制與變換的許多領(lǐng)域中。















實踐1-pwm-led閃爍
要求產(chǎn)生周期為200ms,占空比為50%的PWM信號來控制led燈。
1.cubemax配置



由原理圖可知,led引腳復(fù)用為tim5



周期為200ms,占空比為50%,Tim5掛在APB1總線上,CLK = 84MHZ;假設(shè)PSC =8399,根據(jù)公式ARR = 1999,CRR = 1000.


生成代碼
main.c 添加
/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim5,TIM_CHANNEL_1); //啟動定時器5通道1輸出周期為200ms,占空比50%得PWM信號。
/* USER CODE END 2 */
將代碼下載到開發(fā)板中,實驗結(jié)果led每隔100ms閃爍。
實踐2-PWM-呼吸燈
周期改為20ms,因為大于50hz使人眼不會察覺出閃爍現(xiàn)象。
占空比從0%-100%反復(fù),從而實現(xiàn)呼吸燈。
根據(jù)公式可得,PSC=8399,ARR=199。
占空比從0%開始,所以CRR 的初值為 0,根據(jù)公式計算CCR = 200時,占空比為100%。


生成代碼
mian.c 修改
/* USER CODE BEGIN 2 */
uint16_t i =0; //CCR
uint16_t step = 10; //步進值,使呼吸效果明顯
HAL_TIM_PWM_Start(&htim5,TIM_CHANNEL_1);//啟動定時器5的通道1產(chǎn)生PWM
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
//知識點:在for/while等循環(huán)內(nèi)部定義的變量屬于局部變量,當for循環(huán)結(jié)束以后,局部變量就會被銷毀
for(i=0;i<=200;i = i+step)
{
__HAL_TIM_SET_COMPARE(&htim5,TIM_CHANNEL_1,i);
HAL_Delay(200);
}
/* USER CODE BEGIN 3 */
}
實驗現(xiàn)象,出現(xiàn)呼吸燈效果并反復(fù)。
-
led
+關(guān)注
關(guān)注
243文章
24440瀏覽量
687526 -
led燈
+關(guān)注
關(guān)注
22文章
1604瀏覽量
111174 -
PWM
+關(guān)注
關(guān)注
116文章
5847瀏覽量
223851 -
STM32
+關(guān)注
關(guān)注
2305文章
11122瀏覽量
371193 -
微處理器
+關(guān)注
關(guān)注
11文章
2416瀏覽量
85352 -
功率控制器
+關(guān)注
關(guān)注
0文章
30瀏覽量
12738 -
脈沖寬度調(diào)制
+關(guān)注
關(guān)注
7文章
83瀏覽量
14184 -
PWM波
+關(guān)注
關(guān)注
0文章
101瀏覽量
17636
發(fā)布評論請先 登錄
ALIENTEK_MINISTM32_實驗8_PWM輸出實驗
STM32各模塊學習筆記
STM32 CubeMX學習:5. 其他PWM設(shè)備
使用STM32輸出PWM波形
STM32PWM與示波器實驗
【Rt-Thread】STM32輸出PWM
STM32學習筆記:PWM互補輸出(無刷直流電機驅(qū)動控制)

Robomaster-stm32-PWM學習筆記(stm32控制pwm輸出)
評論