为什么每次修改完比较值之后都要延时一段时间才能达到呼吸灯的效果
定时器的基础配置需要调用HAL_TIM_Base_Init()函数,具体的配置代码如下:
htim1.Instance = TIM1; //指定需要配置的定时器
htim1.Init.Prescaler = 1; //定时器的预分频系数
htim1.Init.CounterMode = TIM_COUNTERMODE_CENTERALIGNED3; //定时器的计数模式,中央对齐模式3
htim1.Init.Period = 4199; //定时器计数周期值
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; //定时器分频因子
htim1.Init.RepetitionCounter = 0; //配置重复计数器寄存器TIMx_RCR
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; //计数达到指定值后,定时器是否自动重装载计数值
HAL_TIM_Base_Init(&htim1); //基础配置函数调用
由于参考资料中给出的解决方案并没有完全解决问题,我无法给出具体的优化延时的方法和建议。建议在继续研究、尝试解决问题的过程中,可以通过增加延时或者使用其他方法来实现更流畅的呼吸灯效果。同时,可以在相关社区或论坛上提问,获得更多专业人士的帮助和建议。