刚入门32一个多月,最近学到输入捕获模式,对定时器初始化函数结构体中的一个Clock_division结构体成员产生了疑惑
我对定时器时钟频率的理解还不是很深,本文只是记一下目前简单的理解。
首先这个colck_division时钟分割系数并不是对定时器的时钟频率进行分割。我们都知道输入捕获模式下有一个数字滤波器,这个数字滤波器可以通过配置寄存器改变他的采样频率,从而将一些频率滤除。
下面上一个寄存器相关位的图



通过配置CKD几位,定时器输入频率fCK_INT与滤波器使用的频率fDTS之间建立关系,而不是对fCK_INT进行分频。而ETF几位,会设置滤波器的采样频率fsampling与fDTS的比例系数之间的比例关系(实际上就是与定时器输入频率CK_INT之间有一定的比例)
后面的N是以fsampling这个采样频率 对输入信号采样多少次,也就是说如果N=8,我们要捕获输入高电平,那么必须以fsampling在低电平后连续检测八次都为高电平,才认定为真的捕获到有效高电平。这个和防抖的原理差不多。
我这里引用从另外一个帖子看到的例子。比如定时器输入频率CK_INT为72MHz,当设置CKD[1:0]为01即

本文探讨了STM32定时器输入捕获模式中的Clock_division(时钟分割系数)概念,解释了它并不直接对定时器时钟频率分频,而是影响数字滤波器的采样频率。通过配置CKD和ETF寄存器位,可以调整滤波器采样频率fDTS与fCK_INT的关系,以及设置滤波器的采样频率fsampling,用于滤除特定频率的信号。举例说明了当CKD设为01时,fDTS变为fCK_INT的一半,而ETF设为0100时,采样频率为fDTS的一半,以此来滤除脉冲宽度小于0.334us的输入信号。
最低0.47元/天 解锁文章
2055

被折叠的 条评论
为什么被折叠?



