实现LED的呼吸灯效果
1、SYS
2、RCC
3、设置时钟树
4、选择定时器及其通道
这里我选择TIM2_CH2
5、定时器基本配置
1ms定时参数设置参考以下公式
这里我们arr = 99 psc = 7199 tclk = 72mhz
Tout = (100*7200)/72us = 0.01s = 10ms
6、生成代码
7、编写程序
7.1 先定义一个全局变量
uint16_t pwm_val;
7.2 开启定时器2,pwm通道
在主程序while前面添加以下代码
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);//开启定时器2,PWM通道2
7.3 编写主程序逻辑
在主程序while循环中添加以下代码
while(pwm_val < 99)
{
pwm_val++;
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_2,pwm_val);//设置比较值
HAL_Delay(5); //延时1ms,改变的太快
}
while(pwm_val > 0)
{
pwm_val--;
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_2,pwm_val);//设置比较值
HAL_Delay(5); //延时1ms,改变的太快
}
8、观察现象
想要不同的现象可以自行调整定时器参数