news 2026/1/17 12:52:03

【TIM控制器(定时器)原理】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【TIM控制器(定时器)原理】

使用精准的时基、通过硬件的方式,实现定时功能。定时器的核心就是计数器。

STM32定时器分类

定时器类型具体子类型核心功能典型应用场景
常规定时器基本定时器1. 16 位自动重装计数器,仅向上计数
2. 触发 DAC / 定时器同步
3. 基础定时 / 溢出中断
- 简单周期性任务触发(如 LED 周期性闪烁)
- 作为 DAC 触发源实现波形输出
- 低精度周期性数据采集
通用定时器1. 16 位向上 / 向下 / 中心对齐计数
2. 输入捕获 / 输出比较
3. PWM 生成(边缘 / 中心对齐)
4. 外部时钟同步
- 脉冲宽度测量(PWM 信号占空比检测)
- 直流电机转速控制(输出可调 PWM)
- 外部信号频率 / 周期测量(输入捕获)
- 舵机角度精准控制
高级定时器1. 包含通用定时器全部功能
2. 死区时间插入(DTI)
3. 刹车 / 断路功能(BRK)
4. 互补 PWM 输出
- 大功率电机驱动(带死区控制,防止桥臂直通)
- 开关电源 PWM 调制(带刹车保护)
- 伺服电机精准位置 / 速度控制
- 逆变电路驱动
特殊功能定时器独立看门狗(IWDG)1. 由内部低速时钟驱动,独立于主程序
2. 喂狗超时自动复位系统
3. 低功耗模式仍工作
- 嵌入式系统防死机(程序跑飞 / 卡死时复位)
- 工业控制设备的异常自恢复
- 无人值守设备的稳定性保障
窗口看门狗(WWDG)1. 由 APB1 时钟分频驱动,依赖主时钟
2. 仅在 “窗口时间” 内喂狗有效
3. 可检测程序执行超时 / 过快
- 高精度系统异常检测(如程序执行节奏异常)
- 对时序敏感的工业控制场景
- 防止程序陷入短周期死循环
实时时钟(RTC)1. 独立时钟域(可由备用电池供电)
2. 秒 / 分 / 时 / 日 / 周 / 月 / 年计时
3. 闹钟 / 周期性中断 / 时间戳
- 电子设备的时间 / 日期显示
- 低功耗设备的定时唤醒(如物联网终端周期性上报)
- 数据采集的时间戳记录
- 定时任务触发(如定时开关机)
系统定时器SysTick 系统滴答1. 24 位向下递减计数器,内核级定时器
2. 可生成精准延时
3. 作为 OS 时钟节拍源
- 嵌入式操作系统(FreeRTOS/UCOS)的任务调度
- 软件延时函数的精准计时(us/ms 级)
- 多任务系统的时间片分配
- 外设轮询的时间基准

常规定时器

STM32定时器分为基本定时器、通用定时器和高级定时器,它们功能各有侧重,适用于不同的应用场景。

基本定时器

基本定时器结构框图

基本定时器结构细分

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

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

2.预分频器(PSC)

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

3.计数器

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

TIMx_CNT寄存器是计数寄存器,用于存储定时器的计数值。

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事件。

如何正确设置TIMx_ARR寄存器的内容?

单脉冲模式选择(取决于TIMx_CR1.OPM位域)

寄存器位位置位名称取值含义
TIMx_CR1Bit 3OPM0:关闭单脉冲模式(定时器连续计数,正常模式)
1:开启单脉冲模式(单次计数,更新事件后自动停止)

更新中断和DMA请求

生成更新中断和DMA请求的两种情况(取决于TIMx_CR1.URS位域):

TIMx_CR1.URS设置为1时:只有计数器上溢(TIMx_CNT寄存器值==TIMx_ARR寄存器值),会生成更新中断和DMA请求

TIMx_CR1.URS设置为0时:所有以下事件都会生成更新中断或DMA请求。

此类事件包括:

—计数器上溢(TIMx_CNT寄存器值==TIMx_ARR寄存器值)

—将UG位置1

—通过从模式控制器生成的更新事件

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/7 9:35:10

学长亲荐8个AI论文平台,本科生毕业论文轻松搞定!

学长亲荐8个AI论文平台,本科生毕业论文轻松搞定! 论文写作的“隐形助手”:AI 工具如何改变你的毕业之路 在当今这个信息爆炸的时代,高校学生的论文写作压力与日俱增。无论是选题、大纲搭建,还是内容撰写和查重降重&…

作者头像 李华
网站建设 2025/12/28 7:20:27

当花朵学会组团解题:新型花授粉算法的暴力美学

新授粉方式的花授粉算法 该算法采用惯性权重、两组随机个体差异矢量和Lvy机制构建新的全局搜索策略,提高算法的全局探索能力;利用信息共享机制、FPA/rand/1和FPA/best/2融合的局部搜索策略,增强算法的局部开发能力;运用基于高斯变…

作者头像 李华
网站建设 2026/1/10 6:12:31

【计算机毕业设计案例】基于springboot的非遗文化传承与推广平台系统收录技艺图谱、传承人档案、历史渊源,支持图文、视频(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2025/12/30 1:28:05

Kamailio 增加 date sip 头

route[DATE] {if (is_request()) {$var(us) $TV(u);$var(ms) $var(us) / 1000;append_to_reply("Date: $timef(%Y-%m-%dT%H:%M:%S).$var(ms)\r\n");} }跟时间/日期有关的伪变量还有一些, 比如下面这段路由:$var(sql) $_s(DELETE FROM location WHERE e…

作者头像 李华
网站建设 2025/12/24 23:33:28

Java毕设项目:基于SpringBoot+Vue的高校志愿活动管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/1/15 22:40:09

Windows系统文件SearchFilterHost.exe 免费下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华