常规定时器
基本定时器
定时器溢出;
- 重新装载
- 更新事件(默认产生)
- 中断和DMA输出(需要自己配置)
- 时钟源:定时器时钟 TIMxCLK,即内部时钟 CK_INT,经 APB1 预分频器后分频提供,如果APB1 预分频系数等于 1,则频率不变,否则频率乘以 2,库函数中 APB1 预分频的系数是 2,即PCLK1=36M,所以定时器时钟 TIMxCLK=36*2=72M。
- 计数器时钟:定时器时钟经过 PSC 预分频器之后,即计数器时钟 CK_CNT,用来驱动计数器计数。PSC 是一 个16 位的预分频器,可以对定时器时钟 TIMxCLK 进行 1~65536 之间的任何一个数进行分频。具体计算方式为:CK_CNT=TIMxCLK/(PSC+1)。
- 计数器:计数器 CNT 是一个 16 位的计数器,只能往上计数,最大计数值为 65535。当计数达到自动重装载寄存器的时候产生更新事件,并清零从头开始计数。
- 自动充装载寄存器:自动重装载寄存器 ARR 是一个 16 位的寄存器,这里面装着计数器能计数的最大数值。当计数到这个值的时候,如果使能了中断的话,定时器就产生溢出中断。
对齐和溢出
递增案例说明
- PSC=2,重装载值ARR=36
- 两个时钟周期计数+1
- 到达36
- 溢出,重新装在,计数归零
- 产生更新2025年3月8日02:41:28
- 中断标志变1
溢出时间计算
计数器计一个数的时间T0 = 1/CK_CNT;那溢出中断的时间就是T1 =T0*(ARR+1)。