STM32F103ZET6通用定时器的输入捕获

本文详细介绍了STM32F103ZET6通用定时器的输入捕获功能,包括4个输入捕获通道、输入滤波器、边沿检测器、预分频器以及输入捕获中断的配置和工作原理。通过配置通道、选择边沿触发、设置滤波器和预分频器,可以实现脉冲宽度和频率的测量。同时,文章还展示了使用HAL库操作输入捕获功能的示例代码。
摘要由CSDN通过智能技术生成

1、通用定时器输入捕获功能简介

  通用定时器的输入捕获模式可以用来测量脉冲宽度或者测量频率。

  STM32的每个通用定时器都有4个输入捕获的通道,分别是TIMx_CH1、TIMx_CH2、TIMx_CH3、TIMx_CH4。

  STM32通过检测通道上的边沿信号,在边沿信号发生变化时(上升沿或下降沿变化),将当前定时器计数器的值(寄存器TIMx_CNT的值)存放到对应通道的捕获/比较寄存器TIMx_CCRx里面,通过记录两次边沿信号的时间,来计算脉冲宽度或频率。

2、通用定时器输入捕获详解  

  通用定时器框图如下:

  图中红色框部分就是通用定时器的输入捕获功能。

  TIMx_CH1、TIMx_CH2、TIMx_CH3、TIMx_CH4分别对应通用定时器的4个输入捕获通道。

  从通用定时器框图可以看到每路输入捕获通道的结构都是差不多的。

  以CH1为例,通用定时器通过TIMx_CH1脚位产生信号TI1,TI1经过滤波器后,将信号传输给边沿检测器,边沿检测器检测到准确的边沿信号之后,产生TI1FP1和TI1FP2信号(这两个信号其实是一样的,只是输出的路径不一样),TI1FP1信号提供给IC1,IC1经过预分频器之后,产生捕获信号,这时候定时器计数器的当前值被锁存到捕获/比较寄存器中,而且TIMx_SR状态寄存器的CC1IF标志位被置1,如果使能了通道1输入捕获的中断功能,就会产生中断。

  在红色的框图中,TI1的输入可以选择TIMx_CH1、TIMx_CH2、TIMx_CH3这3个通道的异或,这个功能好像是高级定时器的霍尔传感器功能,这里不用管,用作输入捕获功能的时候T1就默认选择TIMx_CH1输入就好。

  输入滤波器:

  输入捕获通道通过设置TIMx_CCMRx捕获/比较模式寄存器的ICxF[3:0]位来配置滤波器。

  这里需要注意的是,输入捕获有4个通道,而捕获/比较模式寄存器只有两个,分别是TIMx_CCMR1和TIMx_CCMR2,通道1由TIMx_CCMR1的低8位配置;通道2由TIMx_CCMR1的高8位配置;通道3由TIMx_CCMR2的低8位配置;通道4由TIMx_CCMR2的高8位配置。

  还要注意的是,捕获/比较模式寄存器在不同状态下时,配置的功能是不一样,如果通道被配置成输出,那么捕获/比较模式寄存器是用来配置输出功能;如果通道被配置成输入,则捕获/比较模式寄存器是用来配置输入功能。捕获/比较模式寄存器TIMx_CCMRx的CCxS[1:0]位用来配置通道是输出还是输入。当CCxS[1:0] = 00时,通道被配置为输出。当CCxS[1:0] != 0时,通道被配置为输入。  

  下图是通道1的IC1F[3:0]位的寄存器说明图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值