news 2026/6/12 14:30:41

STM32 TIM3实现1ms系统滴答与app_delay延时设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32 TIM3实现1ms系统滴答与app_delay延时设计

1. 定时器时间基准的工程本质

在嵌入式系统开发中,“获取当前时间”并非一个抽象概念,而是一个需要精确建模的硬件行为。STM32的通用定时器(如TIM3)本质上是一个可编程的递增计数器,其行为完全由输入时钟、预分频器(PSC)和自动重装载寄存器(ARR)共同决定。理解这一点是构建可靠延迟函数的前提。

以TIM3为例,其时钟源来自APB1总线。在标准的72MHz系统主频下,APB1总线频率为36MHz。但关键细节在于:当APB1预分频器配置为不分频(即PCLK1 = HCLK)时,定时器时钟会被硬件自动倍频——这是STM32F1系列的一个重要特性。因此,若HCLK=72MHz且APB1预分频为1,则TIM3的实际输入时钟为72MHz;若APB1预分频为2(PCLK1 = 36MHz),则TIM3时钟仍为72MHz。这一机制确保了定时器具有更高的分辨率和更宽的定时范围。

本方案选择将TIM3配置为1ms时间基准,其核心参数推导如下:
- 目标溢出周期:1ms = 1000μs
- 输入时钟频率:72MHz → 周期为1/72MHz ≈ 13.89ns
- 预分频系数(PSC):需使计数器时钟接近1MHz以便于计算。设PSC = 71,则分频后时钟为72MHz/(71+1) = 1MHz,计数周期恰为1μs
- 自动重装载值(ARR):1ms / 1μs = 1000,因计数器从0开始计数,故ARR = 999
- 重复计数器(RCR):设为0,确保每次溢出均产生更新事件(UEV)

此配置下,TIM3的计数器每1ms溢出一次,硬件自动触发更新事件。该事件是后续实现毫秒级时间戳的核心物理基础。

2. 系统滴答的软件抽象:

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

3步解锁音频自由:告别NCM格式烦恼的开源转换神器

3步解锁音频自由:告别NCM格式烦恼的开源转换神器 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter 在数字音乐收藏的世界里,我们常常遇到这样的窘境&#x…

作者头像 李华
网站建设 2026/6/9 22:59:44

STM32时钟树详解:从原理、配置到实战调试

1. 时钟系统本质:嵌入式系统的脉搏与血液循环 在嵌入式系统工程实践中,时钟绝非一个抽象概念,而是整个硬件平台运行的物理基础。它本质上是一种精确的、周期性的方波信号,其高低电平交替的节奏,直接决定了微控制器内部所有数字电路模块的“心跳”节拍。这种类比并非修辞—…

作者头像 李华
网站建设 2026/6/10 7:37:24

3个秘诀如何让你的LOL效率提升50%?智能辅助工具LeagueAkari全解析

3个秘诀如何让你的LOL效率提升50%?智能辅助工具LeagueAkari全解析 【免费下载链接】LeagueAkari ✨兴趣使然的,功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari …

作者头像 李华
网站建设 2026/6/10 7:38:20

ST7789V引脚定义与接线说明:小白指南(图文)

ST7789V驱动芯片实战手记:从上电黑屏到丝滑刷新的嵌入式显示通关指南你有没有遇到过这样的场景?刚焊好一块2.0英寸TFT模组,MCU一上电——屏幕漆黑如墨;改了十几遍初始化序列,终于亮了,但颜色发灰、泛白&…

作者头像 李华
网站建设 2026/6/10 7:43:18

语音识别神器:Qwen3-ASR-1.7B镜像快速上手教程

语音识别神器:Qwen3-ASR-1.7B镜像快速上手教程 你有没有过这样的经历?录完一段会议录音,想转成文字整理纪要,结果本地软件识别错了一半——“项目启动”听成“项目启动(谐音:启冻)”&#xff0…

作者头像 李华