stm32关于通用定时器的周期、频率计算公式 |
您所在的位置:网站首页 › 5000的12系数是多少 › stm32关于通用定时器的周期、频率计算公式 |
以下内容针对正点原子的定时器中断实验
定时器时基单元包含:
● 计数器寄存器(TIMx_CNT) ● 预分频器寄存器 (TIMx_PSC)——该寄存器用设置对时钟进行分频,然后提供给计数器,作为计数器的时钟。 ● 自动装载寄存器 (TIMx_ARR) 定时器的时钟来源(4个):1)内部时钟(CK_INT) 2)外部时钟模式 1:外部输入脚(TIx) 3)外部时钟模式 2:外部触发输入(ETR) 4)内部触发输入(ITRx) Tclk是定时器时钟源,默认情况下是72Mhz 。 我们将分配的时钟进行分频,指定分频值为psc,就将我们的Tclk分了psc+1,我们定时器的最终频率就是Tclk/(psc+1) MHz 这里的频率的意思就是1s中记 Tclk/(psc+1)M个数 (1M=10的6次方) ,每记一个数的时间为(psc+1)/Tclk ,很好理解频率的倒数是周期,这里每一个数的周期就是(psc+1)/Tclk 秒 通用定时器的主要部分是一个16位计数器和相关的自动装载寄存器。 此计数器时钟由预分频器分频得到,CK_INT -> TIMx_PSC -> CK_CNT。 APB1是通过对AHB分频得到,AHB是通过对SYSCLK分频得到。 当SYSCLK=72MHz,并且AHB分频系数=1时,AHB=72MHz。 当AHB=72MHz,并且APB1分频系数=2,APB1=36MHz,同时TIMxCLK=72MHz。 这里的 CK_INT 时钟是从 APB1 倍频的来的,除非 APB1 的时钟分频数设置为 1,否则通用定时器 TIMx 的时钟 是 APB1 时钟的 2 倍,当 APB1 的时钟不分频的时候,通用定时器 TIMx 的时钟就等于 APB1 的时钟。上述APB1预分频系数=2,所以通用定时器TIM2~TIM5 = 72MHz。 图1.内部时钟选择 图2.通用定时器工作流程图 当满足以下条件时,会产生溢出事件,去触发中断或者DMA请求: 向上计数:计数器从0开始计数至arr(重装载)值,产生溢出事件向下计数:计数器从arr值开始计数至0,产生溢出事件 定时器的周期计算:psc:预分频系数 (16位寄存器,有效值1~65535) arr:重装载数 (16位寄存器,有效值1~65535) Tclk:定时器的输入时钟源(单位MHZ) 注:计数器的arr和时钟分频psc都要加1,因为这两个值是配置在寄存器中的,从0开始计数,故要加1。输入值 = 设置值 - 1 公式: 计数器的时钟频率 f = CK_CNT = f(ck_psc) / (psc+1) = Tclk / (psc + 1) ,对时钟源分频 。 Tout溢出时间 = (1/f) * (arr+1) = ((psc+1) / Tlck) * (arr+1) 如:F103默认配置下,生成1ms的时钟:Tout = (( 1+35 ) / 36M ) * ( 1+999 ) = 1ms 参考博文: stm32 基本定时器定时配置 STM32定时器定时计算公式 内容可能有误,欢迎评论指正更改! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |