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

第六章第一节 TIM 定时中断

一、TIM(Timer) 定时器简介

① 定时器可以对输入的时钟进行计数、并在计数值达到设定值时触发中断(定时触发中断)

② 16 位计数器、预分频器、自动重装寄存器的时基单元,在 72MHZ 计数时钟下可以实现最大 59.65s 的定时

③ 不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能

④ 根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型

STM32F103C8T6定时器资源:TIM1、TIM2、TIM3、TIM4

二、基本定时器

1. 定时器核心工作流程

① 时钟输入:外部/内部高频率时钟信号输入(如 72MHz)

② 预分频器(PSC):

(1) 作用:降低时钟频率

(2) 公式:实际频率 = 输入频率 / (PSC + 1)

(3) 示例:

  • PSC = 0 → 2分频(72MHz → 36MHz)
  • PSC = 1 → 3分频(72MHz → 24MHz)

③ 计算器(CNT)

(1) 接收分频后的时钟(CK_CNT)

(2) 自动重装寄存器(ARR)

  • 设定计数器的最大值(如65535)
  • 计数达到此值时:自动重置计算器,触发“更新中断”

2. 主模式触发 DAC 的功能:能让内部的硬件在不受程序的控制下实现自动运行

三、通用定时器

1. 时钟源输入:

① 内部时钟(CK_INT):由 RCC 提供的 TIMxCLK 经系统总线驱动,为定时器默认计数基准,稳定且可控。

② 外部触发(ETR):支持外部引脚输入,可配置极性(上升 / 下降沿)、滤波(消抖)、预分频,适配外部异步信号(如编码器、脉冲触发)

③ 内部触发

2. 捕获 / 比较通道(CC1 - CC4)

① 输入捕获模式:

(1) 流程:通道引脚(TIMx_CHx)信号经滤波、边沿检测后、触发 CNT 值锁存至捕获 / 比较寄存器(CCR),用于频率测量(周期差法)、脉宽测量(上升沿 → 下降沿时间差),适配红外解码、编码器测速等场景。

(2) 预分频与滤波:支持通道级信号调理,消抖并控制捕获触发频率(如每 2 个边沿触发一次捕获),提升抗干扰能力。

② 输出比较模式:

(1) 原理:CNT 与 CCR 值实时比较,触发输出控制模块翻转电平、置位 / 复位,生成 PWM 波形(占空比 = CCR/ARR)、电平翻转信号,直接驱动电机、LED 等外设

(2) 极性与使能:可配置输出高 / 低有效,独立使能通道输出,灵活构建多路 PWM(如电机三相驱动)

四、时序

1. 预分频器时序

① 预分频缓冲器:

(1) 预分频缓冲器主要用于暂存分频器的有效配置参数,避免在写入新参数时,立即改变预分频器的工作状态,导致计数器工作出现紊乱。它保证了预分频器在参数更新时,能够按照一定的时序稳定切换工作模式,确保整个定时器系统稳定、有序地运行。

(2) 工作过程:

  • 初始状态:假设一开始预分频控制寄存器的值为 PSC = 1,预分频缓冲器也加载了这个值,此时预分频器按照 CK_CNT = CK_PSC / (1+1) 的规则,对输入时钟 CK_PSC 进行分频,输出定时器时钟 CK_CNT,计数器在 CNT_EN 使能的情况下,按照这个分频后的时钟频率进行计数。
  • 写入新参数:当向预分频控制寄存器写入新的参数值(比如 PSC = 2)时,新值并不会立即生效,而是先被存储在预分频控制寄存器中。这时候,预分频缓冲器依然保持原来的参数值(PSC = 1),继续按照原有的分频规则输出 CK_CNT,保证计数器能够继续稳定地工作,不会因为新参数的写入而立即改变工作节奏。
  • 更新事件触发: 当计数器的计数值达到自动重装载值(ARR)并产生溢出,从而触发更新事件(UEV)时,预分频缓冲器才会从预分频控制寄存器中加载新的参数值(PSC = 2)。加载完成后,预分频器开始按照新的分频规则 CK_CNT = CK_PSC / (2 + 1) 对输入时钟 CK_PSC 进行分频,输出新频率的定时器时钟 CK_CNT ,计数器也随之按照新的时钟频率进行计数。

2. 计数器时序

① 中断标志

(1) 定义与本质:中断标志是硬件在特定事件发生时,向软件主动发起通知的 “状态标记”,存储于定时器状态寄存器中(如 TIMx_SR 的 UIF 位 )。本质是硬件与软件交互的 “信号桥梁”,标志特定事件(如计数器溢出)已发生,需软件响应。

(2) 触发机制:当定时器满足预设条件(如计数器从自动重装值 ARR 溢出归 0 ),硬件自动将中断标志位(UIF)置 1。

(3) 关键特性:手动清零

  • 自动保持性:UIF 置 1 后,会持续保持高电平,不会自动归 0 。若不手动清除,会导致:重复触发中断
  • 清零方式:软件通过写操作清除

五、时钟树

1. 关键 “特殊规则” :

①  APB 分频的 “倍频补偿”

如果 APB 总线分频器(如 APB1 分频 /2 ),定时器时钟(TIMxCLK)会自动 ×2 。
→ 例:HCLK=72MHz,APB1 分频 /2 → APB1 总线时钟是 36MHz,但定时器时钟是 72MHz(保证定时精度)。

② 低速时钟的独立用途:

(1) LSE:专给 RTC 实时时钟,断电也能走(靠电池),实现 “日历 / 闹钟” 功能。

(2) LSI:给 独立看门狗(IWDG),无需主时钟也能工作(防止程序跑飞)。

http://www.xdnf.cn/news/16605.html

相关文章:

  • VGA 线、DVI 线、HDMI 线、DP 线
  • 浏览器pdf、image显示
  • 视频生成模型蒸馏的方法
  • Linux基本指令,对路径的认识
  • 无人机磁力计模块运行与技术要点!
  • iOS 签名证书与上架流程详解,无 Mac 环境下的上架流程
  • 传输层协议UDP与TCP
  • 云计算:一场关于“数字水电煤”的革命与未来
  • 通用定时器Timer的基本模式
  • 元码智能“大眼睛”机器人首发,智启生活新纪元!
  • 数据库初阶笔记
  • 招工招聘小程序系统开发——打造一站式招聘服务平台
  • 【MySQL】MySQL索引—B树/B+树
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博内容IP地图可视化分析实现
  • 测试工作中一些有用的链接
  • string类的模拟实现
  • 标准七层网络协议和TCP/IP四层协议的区别
  • TP-Link Archer C50路由器曝安全漏洞,硬编码DES密钥可解密敏感配置
  • JavaScript语法、关键字和变量
  • 外网访问文档编辑器Docsify(Windows版本),内网穿透技术应用简便方法
  • AD里面出现元器件PCB封装不能编辑的情况
  • 湖北大学暑期实训优秀作品:面向美丽中国的数据化可视平台
  • Ubuntu LNMP
  • 《安富莱嵌入式周报》第356期:H7-TOOL的250M示波器模组批量生产中,自主开发QDD执行器,开源14bit任意波形发生器(2025-07-28)
  • 【Linux】重生之从零开始学习运维之Mysql事务
  • Kubernetes自动扩容方案
  • 【C语言进阶】题目练习
  • 《 java 随想录》| LeetCode链表高频考题
  • Linux文件归档和备份
  • 云原生MySQL Operator开发实战(五):扩展与生态系统集成