STM32通用定时器输入捕获

1.原理

通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变时,将当前定时器的值(TIMx_CNT)存放到对应的捕获/比较寄存器TIMx_CCRx中,完成一次捕获。

STM32通用定时器输入捕获

2.设置输入捕获滤波器

STM32通用定时器输入捕获

    1.联系上图,控制寄存器TIMx_CRx中的CKD[1:0]控制图中fDTS(即TDTS)

STM32通用定时器输入捕获

   STM32通用定时器输入捕获

2.输入捕获模式下的捕获/比较模式寄存器TIMx_CCMR1

    设置ICIF[3:0],可以控制输入采样频率和数字滤波器长度。结合寄存器表,例如在上升沿触发时,将ICIF[3:0]设为0011,此时捕获到上升沿时,以fCK_INT的频率,连续采样到8次通道1的高电平,则说明是一个有效的触发,就可以触发输入捕获中断,这样就可以滤除那些高电平脉宽低于8个采样周期的脉冲信号,从而达到滤波的效果。如果不做滤波处理,例如将ICIF[3:0]设为0000,那么只要采集到上升沿,就触发滤波。

STM32通用定时器输入捕获

STM32通用定时器输入捕获

 

3.设置输入捕获的极性

STM32通用定时器输入捕获   

通过捕获/比较使能寄存器(TIMx_CCER)的位1来设置边沿检测器。

STM32通用定时器输入捕获

STM32通用定时器输入捕获

 

4.设置输入捕获映射通道

STM32通用定时器输入捕获

STM32通用定时器输入捕获

STM32通用定时器输入捕获

 

5.设置输入捕获分频器

    通过TIMx_CCMR1控制分频器分频系数。

    通过TIMx_CCER的CC1E控制使能。

STM32通用定时器输入捕获

STM32通用定时器输入捕获

STM32通用定时器输入捕获

  STM32通用定时器输入捕获

STM32通用定时器输入捕获

 

6.捕获到有效信号可以开启中断

STM32通用定时器输入捕获

STM32通用定时器输入捕获