STM32——TIM输入捕获

上一节已经学习了定时器的输出比较,那输入捕获又是什么呢?

输入捕获就是能够检测外部的方波,其实之前也学过一个可以检测外部引脚电平变化的,就是外部中断,但是呢,外部中断挺有限的,它只能检测一个上升沿或者是下降沿就进入中断了,对于波形的周期什么的都不了解 。而这个输入捕获的功能就比较强大了。

同样的,一个通用定时器也有四个输入捕获单元,和输出比较单元共用一个CHX口,和一个比较捕获寄存器。这时候捕获寄存器的作用就是当你检测到指定电平的变化时将计数器CNT中的值暂时锁存到捕获寄存器中,这样的话呢,在两个上升沿或者下降沿的时间就是周期了,而这个时间我们是可以通过捕获寄存器中两次值的差然后在乘以我们设定好的定时器中的时钟频率来计算的,但是这里有一个小问题,就是捕获寄存器中的值是覆盖的,所以就需要你在第一次检测到电平变化的时候,触发一个事件,将CNT中值清零,不过要在你读取之后,这样就可以实现了。

其实上面是测周法,适用于你的方波周期比较大时,当频率大时,应该应用测频法,原理也差不多。

它还有个PWM模式,就是CH1和CH2可以对同一个方波进行捕获,这样就可以求出占空比了。

你可能感兴趣的:(stm32,stm32,单片机,arm,1024程序员节)