stm32 定时器 时间计算方法

stm32 定时器 时间计算方法 和时钟分隔值解释

参考
(https://wenku.baidu.com/view/e3bdfb7601f69e31433294c4.html)

定时器 计算公式

 Tout=((ARR+1)*(PSC+1))/Tclk

Tout :TIM溢出时间 单位 us
ARR : 自动重载值
PSC : 预分频系数

tclk : TIM 输入时钟频率 (MHZ)
举例 :

	TIM_TimeBaseStructure.TIM_ClockDivision  =  TIM_CKD_DIV1; 
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
	TIM_TimeBaseStructure.TIM_Period = 4999; 		//自动装载值
	TIM_TimeBaseStructure.TIM_Prescaler =7199;    //预分频值

Tout = (4999+1)*(7199+1)/72 = 500000
= 500 ms

时钟分隔值解释

引用:
http://bbs.21ic.com/icview-135508-1-1.html

	STM32的定时器输入通道都有一个滤波单元,分别位于每个输入通路上
(下图中的黄色框)和外部触发输入通路上(下图中的兰色框),它们的作用
是滤除输入信号上的高频干扰,具体操作原理如下:
   在TIMx_CR1中的CKD[1:0]可以由用户设置对输入信号的采样频率基准,
   有三种选择:
    1)采样频率基准fDTS=定时器输入频率fCK_INT
    2)采样频率基准fDTS=定时器输入频率fCK_INT/2
    3)采样频率基准fDTS=定时器输入频率fCK_INT/4
  然后使用上述频率作为基准对输入信号进行采样,当连续采样到N次个有
  效电平时,认为一次有效的输入电平。

    实际的采样频率和采样次数可以由用户程序根据需要选择;外部触发输入
    通道的滤波参数在从模式控制寄存器(TIMx_SMCR)的ETF[3:0]中设置;每
    个输入通道的滤波参数在捕获/比较模式寄存器1(TIMx_CCMR1)或捕获/比
    较模式寄存器2(TIMx_CCMR2)的IC1F[3:0]、IC2F[3:0]、IC3F[3:0]和
    IC4F[3:0]中设置。

例如:当fCK_INT=72MHz时,选择fDTS=fCK_INT/2=36MHz,采样频率
fSAMPLING=fDTS/2=18MHz且N=6,则频率高于3MHz的信号将被这个滤
波器滤除,有效地屏蔽了高于3MHz的干扰。

你可能感兴趣的:(stm32 定时器 时间计算方法)