STM32 高级定时器(2)

重点内容
输入捕获和输出比较功能
一、输入捕获功能图:
STM32 高级定时器(2)
文章图片

输入捕获可以对输入的信号的上升沿,下降沿或者双边沿进行捕获,常用的有测量输
入信号的脉宽和测量 PWM 输入信号的频率和占空比这两种。输入捕获的大概的原理就是,当捕获到信号的跳变沿的时候,把计数器 CNT 的值锁存到捕获寄存器 CCR 中,把前后两次捕获到的 CCR 寄存器中的值相减,就可以算出脉宽或零死角玩转 者频率。如果捕获的脉宽的时间长度超过你的捕获定时器的周期,就会发生溢出,这个我们需要做额外的处理。
1、输入通道
需要被测量的信号从定时器的外部引脚 TIMx_CH1/2/3/4 进入,通常叫 TI1/2/3/4
2、输入滤波器和边沿检测器
输入的信号存在高频干扰的时候,我们需要对输入信号进行滤波,即进行重新采样,采样频率 fSAMPLE可以由 fCK_INT和 fDTS分频后的时钟提供,其中是 fCK_INT内部时钟, fDTS 是 fCK_INT 经过分频后得到的频率
边沿检测器用来设置信号在捕获的时候是什么边沿有效,可以是上升沿,下降沿,或者是双边沿
3、捕获通道
输入通道是用来输入信号的,捕获通道是用来捕获输入信号的通道,一个输入通道的信号可以同时输入给两个捕获通道。
当发生捕获的时候,计数器 CNT 的值就会被锁存到捕获寄存器中。
4、预分频器
ICx 的输出信号会经过一个预分频器,用于决定发生多少个事件时进行一次捕获。具
体的由寄存器 CCMRx 的位 ICxPSC 配置,如果希望捕获信号的每一个边沿,则不分频。
5、捕获寄存器
经过预分频器的信号 ICxPS 是最终被捕获的信号,当发生捕获时(第一次),计数器
CNT 的值会被锁存到捕获寄存器 CCR 中,还会产生 CCxI 中断,相应的中断位 CCxIF(在
SR寄存器中)会被置位,通过软件或者读取 CCR中的值可以将 CCxIF清 0。如果发生第二
次捕获(即重复捕获: CCR 寄存器中已捕获到计数器值且 CCxIF 标志已置 1),则捕获溢
出标志位 CCxOF(在 SR 寄存器中)会被置位, CCxOF 只能通过软件清零。
信号的走势:****TIx(输入信号)->ICx->ICxPS(最终被捕获的信号)
二、输出比较
输出比较就是通过定时器的外部引脚对外输出控制信号
输出比较的功能图:
STM32 高级定时器(2)
文章图片

1、比较寄存器:
**当计数器 CNT 的值跟比较寄存器 CCR 的值相等的时候,输出参考信号 OCxREF 的信
号的极性就会改变**,其中 OCxREF=1(高电平)称之为有效电平, OCxREF=0(低电平)
称之为无效电平,并且会产生比较中断 CCxI,相应的标志位 CCxIF(SR 寄存器中) 会置
位。然后 OCxREF 再经过一系列的控制之后就成为真正的输出信号 OCx/OCxN。
2、死区发生器
在输出比较的输出控制中,参考信号 OCxREF 在经过死区发生器之后会产生两路带死
区的互补信号 OCx_DT 和 OCxN_DT(通道 1~3 才有互补信号,通道 4 没有,其余跟通道
1~3 一样),这两路带死区的互补信号然后就进入输出控制电路,如果没有加入死区控制,
那么进入输出控制电路的信号就直接是 OCxREF。
3、输出控制
进入输出控制电路的信号会被分成两路,一路是原始信号,一路是被反向的信号,具
体的由寄存器 CCER 的位 CCxP 和 CCxNP 控制。经过极性选择的信号是否由 OCx 引脚输出
到外部引脚 CHx/CHxN 则由寄存器 CCER 的位 CxE/CxNE 配置
【STM32 高级定时器(2)】4、输出引脚:
输出比较的输出信号最终是通过定时器的外部 IO 来输出的,分别为 CH1/2/3/4,其中
前面三个通道还有互补的输出通道 CH1/2/3N。更加详细的 IO 说明还请查阅相关的数据手
册。

    推荐阅读