目录
STM32F103C8T6 PWM资源:
- 高级定时器(TIM1):7路
- 通用定时器(TIM2~TIM4):各4路
PWM输出模式:
- PWM模式1:在向上计数时,一旦 CNT < CCRx 时输出为有效电平,否则为无效电平; 在向下计数时,一旦 CNT > CCRx 时输出为无效电平,否则为有效电平。
- PWM模式2:在向上计数时,一旦 CNT < CCRx 时输出为无效电平,否则为有效电平; 在向 下计数时,一旦 CNT > CCRx 时输出为有效电平,否则为无效电平。

PWM周期与频率:

PWM占空比:
由TIMx_CCRx寄存器决定。
PWM实验
需求:使用PWM点亮LED1实现呼吸灯效果。
LED灯为什么可以越来越亮,越来越暗?
这是由不同的占空比决定的。
如何计算周期/频率?
假如频率为 2kHz ,则: PSC=71 , ARR=499
LED1连接到哪个定时器的哪一路?
学会看产品手册:
实现:
1.设置时钟
2.设置定时器

3.配置工程
4.编写代码
uint16_t pwmVal = 0;//调整PWN占空比
uint8_t dir = 1; //设置改变方向,1:越来越亮;0:越来越暗
MX_GPIO_Init();
MX_TIM4_Init();
//// 使能 Timer4 第3通道 PWM 输出
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_3);
// while循环实现呼吸灯效果
while (1)
{
HAL_Delay(1);
if(dir)
pwmVal++;
else
pwmVal--;
if(pwmVal > 500)
dir = 0;
else if(pwmVal == 0)
dir = 1;
//修改比较值,来修改占空比
__HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_3, pwmVal);
}
文章详细介绍了如何使用STM32F103C8T6微控制器通过PWM控制LED灯实现呼吸灯效果,包括PWM资源、输出模式、周期频率计算以及占空比的概念。通过设置定时器、配置工程和编写特定的代码段,调整PWM占空比来改变LED亮度,从而达到呼吸灯的渐明渐暗效果。
1018

被折叠的 条评论
为什么被折叠?



