STM32-一文搞懂通用定时器捕获/比较通道

本文详细介绍了STM32通用定时器的捕获/比较通道,包括捕获和比较的概念、应用,以及相关寄存器的使用。捕获模式用于测量脉冲宽度和频率,比较模式常用于PWM输出。文章还探讨了输入和输出通道、捕获/比较寄存器的配置,如TIMx_CCMR1、TIMx_CCER、TIMx_DIER等,帮助理解定时器的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前面文章《STM32-定时器系统原理》已经详细介绍了定时器的系统最基本的计数单元,这边文章来写定时器系统的两个主要应用单元——捕获/比较通道。

目录

捕获和比较

捕获

什么是捕获

捕获的应用

比较

什么是比较

比较的应用

捕获/比较通道概述

输入通道

输出通道

捕获/比较相关寄存器

捕获/比较模式寄存器 1 (TIMx_CCMR1)

输入捕获相关寄存器

捕获/比较使能寄存器 (TIMx_CCER)

DMA/中断使能寄存器 (TIMx_DIER)

控制寄存器 1 (TIMx_CR1)

捕获/比较寄存器 1~4 (TIMx_CCR1~4)

PWM输出相关的寄存器


捕获和比较

捕获

什么是捕获

所谓捕获就是通过检测捕获通道上的边沿信号。在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存器(TIMx_CCR)里面,完成一次捕获。

捕获的应用

STM32支持一下捕获模式:

  • 输入捕获模式
  • PWM输入模式

输入捕获模式可以用来测量脉冲宽度或者测量频率。下图是输入捕获测量高电平脉宽的原理,假定定时器工作在向上计数模式,图中 t1~t2 时间,就是需要测量的高电平时间。

测量方法如下:首先设置定时器通道 x 为上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器的计数频率,我们就可以算出 t1~t2 的时间,从而得到高电平脉宽。

比较

什么是比较

所谓比较就是计数器的值和与装载的值进行比较。

比较的应用

STM32支持一下比较模式:

  • 强置输出模式
  • 输出比较模式
  • PWM模式
  • 单脉冲模式

最近本的应用就是PWM模式了!

上图是输出PWM的原理,假定定时器工作在向上计数 PWM模式,且当 CNT<CCRx 时,输出 0,当 CNT>=CCRx 时输出 1。当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值,就可以改变 PWM 输出的频率。

捕获/比较通道概述

捕获/比较通道与定时器密切相关,密不可分,水乳交融,使用不同的功能要使用到不同的寄存器,这里只列举与输入捕获、PWM相关的寄存器。如果使用到其他功能,详细的相关的寄存器在《STM32中/英文参考手册》的14.4章节。通用定时器框图如下所示,红色框是计数器部分,在计数器的基础上,还有下方的4个独立的捕获/比较通道,主要用于

  • 输入捕获
  • 输出比较
  • PWM生成(边缘或中间对齐模式) 
  • 单脉冲模式输出

每一个捕获/比较通道都是围绕着一个捕获/比较寄存器,包括捕获的输入部分(数字滤波、多路复用和预分频器),和

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值