STM32寄存器与输入捕获

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/andrewgithub/article/details/54348637

以下来至原子教程
输入捕获模式可以用来测量脉冲宽度或者测量频率。
STM32 的定时器,除了 TIM6 和 TIM7,
其他定时器都有输入捕获功能。STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx 上的
边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)
存放到对应的通道的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获。同时还可以配置
捕获时是否触发中断/DMA 等。
本章我们用到 TIM2_CH1 来捕获高电平脉宽,也就是要先设置输入捕获为上升沿检测,记
录发生上升沿的时候 TIM2_CNT 的值。然后配置捕获信号为下降沿捕获,当下降沿到来时,发
生捕获,并记录此时的 TIM2_CNT 值。这样,前后两次 TIM2_CNT 之差,就是高电平的脉宽,
同时 TIM2 的计数频率我们是知道的,从而可以计算出高电平脉宽的准确时间。
接下来,我们介绍我们本章需要用到的一些寄存器配置,需要用到的寄存器有: TIMx_ARR、
TIMx_PSC、TIMx_CCMR1、TIMx_CCER、TIMx_DIER、TIMx_CR1、TIMx_CCR1 这些寄存
器在前面两章全部都有提到(这里的 x=2),我们这里就不再全部罗列了,我们这里针对性的介绍
这几个寄存器的配置。
首先 TIMx_ARR 和 TIMx_PSC,这两个寄存器用来设自动重装载值和 TIMx 的时钟分频,
用法同前面介绍的,我们这里不再介绍。
再来看看捕获/比较模式寄存器 1:TIMx_CCMR1。

猜你喜欢

转载自blog.csdn.net/andrewgithub/article/details/54348637