三种定时器
定时器的时基
计数器寄存器(TIMx_CNT)、预分频器寄存器(TIMx_PSC)、自动转载寄存器(TIMx_ARR)。可通过配置这三个寄存器可配置计数周期。
参考stm32中文手册
1.CNT_EN在TIMx_CR1寄存器 的最低位当高电平时将定时器使能。
2.预分频寄存器(TIMx_PSC)。该寄存器用设置对时钟进行分频,然后提供给计数器,作为计数器的时钟。
这里的 CK_INT时钟是从 APB1 倍频的来的,除非 APB1 的时钟分频数设置为 1,否则通用定时器 TIMx 的时钟是 APB1 时钟的 2 倍。
3.状态寄存器(TIMx_SR)。该寄存器用来标记当前与定时器相关的各种事件/中断是否发生。置1时代表发生
4.自动重装载寄存器(TIMx_ARR),该寄存器在物理上实际对应着 2 个寄存器。一个是程序员可以直接操作的,另外一个是程序员看不到的,这个看不到的寄存器在《STM32参考手册》里面被叫做影子寄存器。事实上真正起作用的是影子寄存器。根据 TIMx_CR1 寄存器中 APRE 位的设置:APRE=0 时,预装载寄存器的内容可以随时传送到影子寄存器,此时 2者是连通的;而 APRE=1 时,在每一次更新事件(UEV)时,才把预装在寄存器的内容传送到影子寄存器。
5.计算公式
时钟频率公式:CK_CNT = fCK_PSC/(PSC[15:0]+1) (在默认情况下fCK_PSC为72MHz,AHB时钟=72M,APB1时钟=3M,所以APB1的分频系数=AHB/APB1=2,所以,通用定时器时钟CK_INT=36M2=72M)
时间公式:T = (PSC[15:0]+1)( ARR[15:0]+