STEM 32 定时器的了解
关于自动重装定时器
自动重装定时器决定了定时器的上溢时机,也就决定了寄存器的周期.(如果定时器的周期大于pwm的周期会出现数据溢出)
关于更新事件
更新事件如果发生,标志着定时器的新的配置,也就是定时器环境的改变
关于自动重装定时器和预加载定时器
预加载定时器是自动重装定时器的"先行者",用户可以通过向预加载定时器发出"指令",对自动重装定时器进行修改,而不能直接"命令"自动重装定时器(可能它有点老大)
可能存在如下情况:
① TIMx_CR1.ARPE = 0,自动重装载寄存器没有缓冲区,对TIMx_ARR的修改直接影响下一个周期的定时长度。
② TIMx_CR1.ARPE = 1,自动重装载寄存器有缓冲区,对TIMx_ARR的修改影响的是下下一个周期的定时长度。
③ TIMx_CR1.ARPE = 1,自动重装载寄存器有缓冲区预加载寄存器(TIMx_ARR),预加载寄存器更新到自动重装载寄存器的时机是:当定期器一个定时周期结束产生一个更新事件的时候。
④ TIMx_CR1.ARPE = 1,注意我们在写程序的时候,给TIMx_ARR赋值,并没有真正的写入到自动重装载寄存器中,而是写入到了预加载寄存器中。
关于定时器的初始化
步骤:1.开启定时器时钟
2.设置定时器周期数,设置定时器预分频器,使能内部时钟
3.清除定时器更新中断标志位
4.使能定时器中断服务
5.开启定时器