STM32 基础知识 定时器【概念】
定时器
定时器就是 计数器
定时器总体分为三类:基本定时器,通用定时器,高级定时器。
框图
框图主要分为四部分:①时钟产生器部分 ②时基单元 ③ 输入捕获部分 ④ 输出比较部分
TIM功能描述
时基单元
一般来说 时基单元有三部分构成:预分频器(PSC)、计数器(CNT)、和自动重装载寄存器(ARR)重复次数计数器只存在于高级定时器
其中 预分频器和自动重装载寄存器是有影子计数器存在的,当我们修改完预分频器和自动重装载寄存器后,并不会立即进行改变,而是在产生更新中断时,才会写入到影子寄存器中,影子寄存器才是实际起作用的寄存器。
还需要注意:UEV 为更新事件,UIF(Updata Interrupt Flag)为更新中断标志,UIE(Updata Interrupt Enable)为更新中断使能
产生更新事件后,UIF会置1
预分频器:
是一个16为的寄存器,对输入时钟进行分频,可以在运行过程中改变他的数值,在下一次产生更新事件时起作用。
计数器:
计数器从0累加到自动重装载寄存器的值后,然后重新从0开始计数并产生一个更新事件
自动重装载寄存器:
固定值,用来比较CNT与ARR值的关系,
ARR也存在影子寄存器,与PSC不同的是:可以通过寄存器来开关影子寄存器
重复计数器(TIM1、TIM8):
大概就是计数器溢出的次数,当没有重复计数器时,计数器溢出会直接产生更新中断,有了重复计数器后,当计数器溢出的次数等于重复计数器后才会产生更新中断
计数器模式:
向上计数模式、向下技术模式、中央对齐模式
向上计数模式:
计数器从0计数到自动重装载寄存器的值后,重新从0开始计数并产生一个更新事件
向下计数模式:
计数器从自动重装载寄存器的值开始向下计数到0,然后从自动重装载的值重新开始并产生一个更新事件
中央对齐模式:
计数器从0开始计数到ARR-1时,产生一个计数器溢出事件,然后开始向下计数,当计数到1时,产生一个计数器下溢出事件,然后从0开始计数。
时钟产生器
分为时钟源选择和控制器
控制器
① 触发控制器(主模式) ②从模式控制器 ③ 编码器控制
时钟源:
主要来源于四部分:
1) 内部时钟(CK_INT)
2) 外部时钟模式1
TI1_ED、TI1FP1、TI2FP2
TI1_ED:定时器的边沿检测
TI1FP1:Timer Input 1 Filtered polarity 定时器1的输入 经过滤波和极性选择后
3)外部时钟模式2
TIMx_SMCR ETP: 外部触发极性,0 高电平或上升沿有效,1 低电平或下降沿有效
TIMx_SMCR ETPS[1:0]: 外部触发分频,00 关闭,01 ETRF/2 ,10 ETRF/4,11 ETRF/8
TIMx_SMCR ETF[3:0]:外部触发滤波
4)ITRx 内部触发输入
来自其他定时器的输出,用于级联