STM32定时器的标志位是指在进行定时器的运行过程中,一些特定的事件会触发标志位的改变,开发者可以通过读取标志位来获取特定的事件是否发生。定时器的标志位可以分为两种:清除标志位和状态标志位,其中清除标志位一般需要手动清除,而状态标志位则随着事件的发生而自动改变。常用的定时器标志位有计数器溢出、计数器更新、输出比较匹配等。
其中,计数器溢出标志位是最常见的标志位之一,在定时器达到设定的计数器值时,计数器会溢出并触发计数器溢出标志位的改变。而计数器更新标志位是在每次计数器向上计数到Auto-Reload Register的值时被触发。
当TIMERx的计数器在自动重装载寄存器(Auto Reload Register,ARR)和预分频器(PSC)的作用下计数到最大值(也就是溢出)时,会发生计数器溢出中断,并将其标志位TIM_SR_UIF(定时器更新标志)。这是因为计数器的预装载量是0xFFFF所以在溢出之后会直接重置为0。
在实际应用中,计数器溢出事件一般用于定时器的计时操作,通过设置定时器的计数器值和预分频器的值,可以实现不同的计时时间。当计时器溢出后,中断函数被触发执行相关操作。
计数器更新标志位是当定时器的计数器向上计数到Auto-Reload Register的值时被触发。在自动重载模式下,每当计数器经过0并重新载入ARR时会产生该标志位,这意味着定时器的计数器已经重新开始计数。
与计数器溢出标志位不同的是,计数器更新标志位不需要手动清除,它会自动被清除。该标记通常用于捕获或比较输入的脉冲宽度和周期测量,例如定时器的输入捕获功能。
输出比较匹配标志位是在比较匹配事件发生时被触发。在输出比较模式下,当计数器达到预设值与比较值相等时,输出比较匹配事件启动,并在定时器中更新相关标志位,其中包括比较匹配标志位。
输出比较匹配标志位通常用于在定时器的PWM模式中,它是充当占空比比较器的角色,可以控制输出的PWM波形。该标记可以用于检测定时器周期性地启动了多少个PWM周期,以及控制相应的PWM波峰和波谷的占空比。