stm32 定时器输入捕获

STM32的输入捕获功能算是定时器的又一大亮点,方便高效不说,为硬件的设计真是省去了很多麻烦。利用输入捕获功能可以测量出信号的脉宽长度,通过捕获信号相邻两个上升沿的时间可以得到信号的周期,或者是上升沿与下降沿之间的时间得出高电平持续的时间。
由于PWM信号用到的领域实在太多了,STM32有一个hin贴心的设计,就是有专门的PWM输入捕获,让我们可以不用那么麻烦的一会儿上升沿一会儿下降沿而直接获取占空比和周期,是不是很方便。

stm32 定时器输入捕获_第1张图片
假设信号从通道1进来,首先通过滤波,可以滤除一些干扰信号,通过硬件屏蔽干扰可以减小软件方面的工作量,所以这里的滤波可以理解为硬件消抖,与软件相比硬件消抖的稳定性更好一些。
经过滤波的信号就进入一个边沿检测模块之后经过分频器进入捕获寄存器。

假设我们要用TIM1的通道1捕获信号的上升沿,
1首先要配置定时器和相应的通道这个不用多说;
2根据输入信号的特点,配置输入滤波器为所需的带宽,假设输入信号在最多5个内部时钟周期的时间内抖动,我们须配置滤波器的带宽长于5个时钟周期,保证能检测到一次真实的边沿变换;
3配置信号的检测边沿为上升沿;
4配置分频器的分频值(如果分频值为2就说明每来两次上升沿产生1次捕获,很多时候我们需要每来一次上升沿就有一次捕获就要设置分频值为1);
5根据需要配置中断请求

如果我们要直接捕获PWM信号,除了有上面的那些配置还需要
1 选择有效输入端;
2 配置主从复位模式
有效输入端就是下面那个框图里红色的那两个信号,同时也能看出当捕获PWM信号时只能用通道1和通道2,其他通道用不了
stm32 定时器输入捕获_第2张图片

定时器输入捕获配置
stm32 定时器输入捕获_第3张图片

定时器PWM捕获配置
stm32 定时器输入捕获_第4张图片

你可能感兴趣的:(stm32开发)