STM32Cubemx配置定时器PWM——基础配置

一、Cube配置

以TIM5为例,其他有PWM输出功能的定时器类似。

1.1 计数器配置

修改预分频系数(PSC)和计数器周期(Counter Period)
在这里插入图片描述

查看数据手册,TIM5挂载在APB1总线上,我设置的APB1=84Mhz。
P W M 周期 = I n t e r n a l C l o c k / P S C ∗ C o u n t e r P e r i o d = 84 M h z / 42 ∗ 1000 = 2 K h z PWM周期=InternalClock/PSC*Counter Period=84Mhz/42*1000=2Khz PWM周期=InternalClock/PSCCounterPeriod=84Mhz/421000=2Khz
所以PWM周期为2Khz

1.2 PWM配置

初始化PWM占空比
在这里插入图片描述

占空比 = P u l s e / C o u n t e r P e r i o d = 500 / 1000 = 50 % 占空比=Pulse/Counter Period=500/1000=50\% 占空比=Pulse/CounterPeriod=500/1000=50%

二、程序设计

2.1 开启PWM

Cube只是帮我们配置,并不会自动帮我们开启PWM,所以需要我们手动开启PWM。

    HAL_TIM_PWM_Start(&htim5,TIM_CHANNEL_1);	// 开启通道1 PWM
    HAL_TIM_PWM_Start(&htim5,TIM_CHANNEL_2);	// 开启通道2 PWM

2.2 和PWM设置相关的函数

2.2.1 开启关闭PWM

HAL_TIM_PWM_Start();  	// 开启PWM
HAL_TIM_PWM_Stop();		// 关闭PWM

2.2.2 修改PWM周期

for(i=100;i>0;i--)
{
 __HAL_TIM_SET_COMPARE(&htim14,TIM_CHANNEL_1,i*10);   // 修改PWM占空比,实现呼吸灯效果
 osDelay(10);  //延时10ms
}
posted @ 2023-11-12 17:18  SuperCodeCat  阅读(980)  评论(0)    收藏  举报  来源