当前位置: 首页 > 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.zskr.cn/news/1519630.html

相关文章:

  • MoocDownloader完整指南:5分钟掌握.NET实现的MOOC课程离线下载技术
  • MC9328MXL I2C与SSI寄存器级编程:从原理到实战避坑指南
  • (十)多UnitId模拟:一个网关下面挂多个从站怎么测
  • MC56F825x/824x DSC双12位ADC配置与电机控制实战解析
  • 基于设备标识重置技术的Cursor Pro功能绕过实现深度解析
  • 数据分析工具选型指南:选对工具,效率直接翻倍! - 品牌测评鉴赏家
  • 会议视频快速转文字、提取音频!2026实测5款靠谱工具 - 品牌测评鉴赏家
  • AI视频工具实测:Seedance/可灵/HappyHorse谁最能打?
  • 《我劝你先别创业,除非你先测过这个》
  • 【会议征稿通知 | 深圳大学主办 | AP出版 | EI 、Scopus稳定检索】第四届管理创新与经济发展国际学术会议(MIED 2026)
  • [企业AI落地] Windows 11 下快速搭建 Ollama + Hermes + Codex + Open WebUI 本地 Agent 体系
  • CANN数学算子库ops-math底层优化原理深度剖析:昇腾NPU上GELU激活函数三种实现方式的性能与精度权衡工程实践
  • 用户交互体验优化:缩放、拖拽、日志、错误提示
  • 用C语言循环搞定PTA编程题:统计Tom、Jerry和Spike的选票(附完整代码和测试用例)
  • 终极免费视频下载神器:yt-dlp-gui Windows图形界面完整指南
  • 告别无效加班!职场日常办公工具测评,选对效率翻倍 - 品牌测评鉴赏家
  • 免费文件分类整理储存工具合集!学生家长老师自用,零套路超好用 - 品牌测评鉴赏家
  • HCS08寻址模式与指令集实战:从原理到嵌入式代码优化
  • 不靠设备堆产能!集萃智造全流程焊接工艺方案,适配各类工厂工况
  • NXP LS1046A PKHA硬件加速ECC点运算:R2预计算与实战优化
  • 2026年6月长春小班型美术画室排行 - 奔跑123
  • 文件堆积成灾?3分钟搞定高效分类整理,2026最优工具推荐! - 品牌测评鉴赏家
  • MC68040芯片热设计实战:从热阻原理到散热方案选型
  • 、广告配音用什么在线工具效果好?2026通通无印免费AI广告配音教程 - 科技大爆炸
  • 深入解析NXP Kinetis KE1xZ低功耗模式:从电源域到WFI指令实战
  • 简单三步:免费下载Book118文档并生成无水印PDF的完整指南
  • Zenith.NET 开发札记:把 .NET 图形 API 推向现代 RHI
  • 网课视频存在哪里不占手机内存?多种实用存储方式汇总 - 品牌测评鉴赏家
  • MC92604接收器配置与冗余链路设计实战解析
  • 如何实现本地化的实时唇语识别?5个步骤打造隐私保护的口型转文字方案