如果说我们想要200ms触发一次中断,然后完成一些功能,那么怎么才能产生200ms的中断那,可能公式大家都知道,如下:
定时器韶光打算公式

但是这个公式怎么来的那?大家知道我们定时器常常配置分频系数和预装载值,个中分频系数那便是用来掌握我们这个定时器的频率的,而预装载值便是一个目标值,当数值累加到这个目标值的时候就会产生中断。首先我们须要确定当前定时器的事情频率,上图中psc便是我们设置的预分频,定时器的事情频率便是: 频率=Tclk /psc,那么好,为什么要再加1那,我理解的是分配是从0开始计数的,0-不分频,就还是本身频率,; 1就相称分一次频率,分一次便是分一半嘛,以是须要除以2,以是公式便是 频率=Tclk /(psc+1);周期=1/频率,周期的意思便是记一次数所须要的韶光,那么我们记录arr个数字须要多永劫光那?便是:
周期arr,由于计数也是从0开始计数的,以是arr个数精确该当是记了arr+1个数,以是公式就成了周期(arr+1),整理便是:
计时时间=周期(arr+1)= (1/频率) (arr+1)= (1/Tclk /(psc+1)) (arr+1)= (psc+1)) (arr+1)/Tclk。
时钟树的不雅观看到这里arr和psc怎么设置大家都知道,那么Tclk频率怎么得到那?可能我们按照开拓板例子上人家说是多少便是多少,现在那我们就看一下怎么查Tclk的数值。
STM32时钟树
图中赤色1,2,3,4是我们利用的时钟源,蓝色框是我们的外设时钟,假设我们没有接外部时钟,利用内部时钟1,经由5,PLL倍频后得到最大72Mhz的时钟,然后到AHB模块,这里可以进行1,2等其他分频,然后传到APB1上,这里可以进行1,2等其他分频,APB1写的最大36M,以是这里是2分频,然后下一框写的 如果APB1预分频为1,频率不变,其他2,APB1进行2分频,以是这里是不是该当2,所以为72Mhz, 然后通报到定时器2-7。以是我们知道上述公式中Tclk=72Mhz。
如果大家喜好麻烦点个赞吧,麻烦点个关注吧。









