当前位置: 首页 > news >正文

STM32 TIM控制器

一、基本定时器

1. 时钟源(内部时钟CK_INT)

基本定时器(TIM6和 TIM7)的时钟源来源于APB1总线时钟。

使能TIM6或TIM7时钟:

2. 预分频器(PSC)

负责对定时器输入时钟进行分频,它的主要作用是通过降低定时器的输入时钟频率,为定时器的计时和定时功能提供更灵活的时间控制。 TIMx_PSC寄存器是定时器的预分频器寄存器,用于设置定时器的预分频因子,分频因子决定了定时器的时钟频率。需要注意的是实际的分频值是TIMx_PSC+1,例如,当TIMx_PSC寄存器的值为0时,实际的分频因子的大小为 0 + 1 = 1。

3. 计数器

计数器通过对输入时钟(由预分频器分频后的时钟信号),记录经过的时间。计数器的计数模式有三种,递增计数、递减计数、中央对齐计数,但是,基本定时器仅支持递增模式。

4. 自动重装载器

控制计数器的最大计数值,从而影响定时器的溢出时间和功能行为。

TIMx_ARR是自动重装载器的重装载值寄存器,当TIMx_CNT寄存器等于TIMx_ARR寄存器时,计数器上溢,TIMx_CNT寄存器的值自 动重置为 0,同时产生一个UEV更新信号。

UEV事件的产生:

可能产生UEV事件的信号来源:

  • 计数器上溢 (TIMx_CNT寄存器值==TIMx_ARR寄存器值)
  • 手动产生 (将TIMx_EGR.UG位写1)

产生UEV事件的信号来源是否可以产生一个UEV的更新事件,取决于TIMx_CR1.UDIS位域。 TIMx_CR1.UDIS为0时,允许产生更新事件;TIMx_CR1.UDIS为1时,则禁止产生UEV事件。

二、通用定时器

STM32F4xx系列的通用定时器有10个:

通用定时器TIM2到TIM5的框图

  1. 时钟源
  2. 控制器
  3. 时基单元
  4. 输入控制
  5. 输入捕获/输出比较
  6. 输出控制

通用定时器TIM9和TIM12的框图

通用定时器TIM10/TIM11和 TIM13/TIM14的框图

使用通用定时器进行定时

选择时钟源为内部时钟源(CK_INT),通过TIMx_SMCR寄存器下的SMS设置为000,并且要保证ECE位为0.

对时钟源CK_INT进行预分频:通过TIMx_PSC设置预分频系数,注意:实际的预分频系数= TIMx_PSC+ 1

设置计数器计数模式:TIMx_CR1.DIR和TIMx_CR1.CMS共同作用,决定计数器的计数模式。

设置自动重装载器的值:TIMx_ARR寄存器设置。TIMx_ARR寄存器的值更新到实际生效的影子寄存器的方式有两种,取决于TIMx_CR1.ARPE

手动产生一个更新事件TIMx_EGR.UG,然后使能计数器时钟TIMx_CR1.CEN。

PWM(Pulse Width Modulation)简称脉冲宽度调制,是利用微处理器的数字输出来对模拟电路进行控制的 一种非常有效的技术,广泛应用在测量、通信、工控等方面。

PWM的频率是指在1秒钟内,信号从高电平到低电平再回到高电平的次数,也就是说一秒钟PWM有多少个周期,单位Hz。

PWM的周期T=1/f,T是周期,f是频率。 如果频率为50Hz ,那么一个周期是20ms。

占空比是一个脉冲周期内,高电平的时间与整个周期时间的比例,单位是% (0%-100%)

PWM模式1

  • 在递增计数模式下,只要TIMx_CNT<TIMx_CCR1,通道1便为有效状态(OC1REF=1),否则为无效状态 (OC1REF=0)。
  • 在递减计数模式下,只要TIMx_CNT>TIMx_CCR1,通道1便为无效状态(OC1REF=0),否则为有效状态 (OC1REF=1)。

PWM模式2

  • 在递增计数模式下,只要TIMx_CNT<TIMx_CCR1,通道1便为无效状态(OCxREF=0),否则为有效状态 (OCxREF=1)。
  • 在递减计数模式下,只要TIMx_CNT>TIMx_CCR1,通道1便为有效状态(OCxREF=1),否则为无效状态 (OCxREF=0)。

PWM中断

当TIMx_CNT=TIMx_CCR1时,TIMx_SR寄存器“捕获/比较中断标志(CC1IF)”置1,如果CC1中断使能还会触发捕获/比较中断。

当计数器发生溢出时,如果TIMx_CR1寄存器UDIS为0允许UEV更新,“更新中断标志(UIF)”置1,如果UIE中断使能还会触发更新中断。

http://www.jsqmd.com/news/1007825/

相关文章:

  • MoocDownloader完整指南:5分钟掌握.NET实现的MOOC课程离线下载技术
  • Pandas学习第二课—DataFrame
  • GPT-4数据可靠性风险与工程级验证四步法
  • 告别熬夜填表!5款表格自动化神器实测,小白也能零代码搞定 - 品牌测评鉴赏家
  • MC9328MXS USB设备控制器:从寄存器配置到数据传输实战
  • MC9328MXL I2C与SSI寄存器级编程:从原理到实战避坑指南
  • 【科研快报】与其消灭AI幻觉,不如教它说“我不确定“——谷歌团队提出AI元认知新范式
  • RTIC运行时完整性检查:硬件寄存器配置与安全实践详解
  • “提示词”根本不算技能!程序员真正靠AI赚钱的3个硬核误区揭秘
  • 基于PLC的分拣存储控制系统设计23(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 告别手动制表:3种办公场景下的效率工具选择思路 - 品牌测评鉴赏家
  • 揭阳亲测!汽车贴膜品牌老店推荐首推揭阳市榕城区东升志明汽车用品 - 资讯速览
  • BERTScore终极指南:如何用语义相似度精准评估文本生成质量?
  • (十)多UnitId模拟:一个网关下面挂多个从站怎么测
  • MC56F825x/824x DSC双12位ADC配置与电机控制实战解析
  • 开发日志(十一):多模态菜单 RAG 系统实战
  • 26年春季学期学习记录第44天
  • 数据分析工具选型指南:选对工具,效率直接翻倍! - 品牌测评鉴赏家
  • 猫抓浏览器扩展终极指南:三步搞定网页视频音频下载
  • 基于设备标识重置技术的Cursor Pro功能绕过实现深度解析
  • 星露谷物语SMAPI终极指南:5分钟学会安全安装模组框架
  • 鸿蒙数学108篇 第八十二篇:微积分基本定理
  • 深入解析MC92603千兆以太网PHY芯片:8B/10B编码、冗余链路与时钟恢复实战
  • Maya glTF导出插件深度解析:构建高效3D格式转换工作流实战指南
  • 打破常规:NSK“黑科技”如何重塑滚动轴承的寿命预测?
  • 会议视频快速转文字、提取音频!2026实测5款靠谱工具 - 品牌测评鉴赏家
  • WorkshopDL:跨平台玩家的终极Steam创意工坊下载指南
  • 5分钟掌握ncmdump:轻松解锁网易云音乐NCM加密文件
  • JAVA常见API
  • 《我劝你先别创业,除非你先测过这个》