定时器之输出比较

定时器输出比较

STM32的定时器输出比较(Output Compare,OC)功能是其定时器模块的重要特性之一,主要用于生成特定波形(如PWM)、触发事件或控制外部设备。有以下主要功能

  • 波形生成:通过比较定时器计数器(CNT)和预置的比较寄存器(CCR),生成PWM信号或特定频率的方波。

  • 事件触发:当计数器与CCR匹配时,触发中断、DMA请求或其他外设操作。

  • 引脚控制:直接控制引脚电平的翻转、置高或置低。

波形生成

PWM脉冲宽度调制信号

  • 脉冲宽度调制:通过调整方波信号中高电平(脉冲)的持续时间(宽度),改变一个周期内高电平与低电平的时间比例(占空比),从而控制输出的平均电压。
  • 占空比计算:占空比(Duty Cycle)= 高电平时间 / 周期时间 × 100%。例如,50%占空比表示高电平和低电平时间各占一半。

我们可以利用PWM输出模拟信号,实时调整占空比可以对应模拟信号波形

在信号强的位置占空比大,信号弱的位置占空比小。

如何输出一个PWM信号

假如我们要输出一个占空比为50%的PWM信号,我们进行如下操作

首先我们做如下设置,定时器输入时钟源选择RCC(8MHz),预分频器PSC=799,自动重装寄存器ARR=9,计时器NCT选择上计数,重复计时器RCR=0。

计时器的实际运行如下

我们设置CCR1寄存器(CCR1​(Capture/Compare Register 1)是一个与定时器(Timer)模块密切相关的关键寄存器)为4,当CNT的值大于CRR1时CRR1会拉高电平向外输出高电平,当CRR1的值小于CNT时CRR1会拉低电平向外输出低电平。如下生成了占空比为50%的PWM信号。

同理我们改变CRR1的值就会得到我们需要的PWM信号

所以形成PMW是由时基单元和CCRx共同完成的,其中时基单元决定波的周期,CCRx寄存器决定占空比。

输出比较

输出比较(Output Compare)​​ 是定时器(Timer)模块的核心功能之一,用于在特定时间点控制引脚电平变化、触发中断或DMA请求。其内部结构图如下

输出比较的核心原理

基本机制

定时器计数器(CNT)持续递增(或递减),并与预先写入的比较寄存器(CCRx,如CCR1)​​ 进行实时比较。当 ​CNT 和 CCRx​ 的值发生不同比较时,触发比较匹配事件,根据配置改变输出引脚电平、生成中断或启动DMA传输。

输出比较有8种模式可以选择,我们常用PWM1和PWM2模式

节点2后的结构如图

输出的信号是互补的,当CH1输出高电平时,CH1N输出低电平,其中CH1N不是每个TIM都有的,在使用的时候一定要注意

极性选择

在极性选择中选择不同的极性也会对输出波形有较大的改变,如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值