新闻详情

新闻详情

首页 / 资讯中心 / 详情

重温STM32基础:定时器(2)

发布时间:2026/10/2 6:55:23来源:尧图网络
重温STM32基础:定时器(2)
文章目录预分频器时序计数器时序影子寄存器预装寄存器计数器有预装和无预装摘要本文讲解 STM32 通用定时器中预分频器PSC与计数器CNT的时序行为重点剖析影子寄存器预装寄存器机制。通过时序图说明改变预分频值后计数频率的变化并对比计数器有预装与无预装两种模式下修改 ARR 的生效差异帮助理解为何需要影子寄存器来避免计数过程中改值导致的异常结果。预分频器时序下面这个图来自于RM。它展示的是在定时器已经被使能后如果改变prescalar计数器的行为。计数器计数频率f ( C K _ C N T ) C K _ P S C 1 P S C f(CK\_CNT) \frac{CK\_PSC}{1PSC}f(CK_CNT)1PSCCK_PSC​.计数器时序计数器溢出频率C K _ C N T _ O V f ( C K _ C N T ) A R R 1 C K _ P S C ( 1 P S C ) ( A R R 1 ) CK\_CNT\_OV \frac{f(CK\_CNT)}{ARR 1} \frac{CK\_PSC}{(1 PSC)(ARR 1)}CK_CNT_OVARR1f(CK_CNT)​(1PSC)(ARR1)CK_PSC​影子寄存器预装寄存器再看一下这个框图上面提到了“影子寄存器”如上的这个通用定时器框图的下面“Note”中对一个特殊的框有说明这个框有阴影在课程中老师称它为“影子寄存器”可能和这个图示有关也叫“缓冲寄存器”。它的意思时“根据控制位的值当U事件发生的时候这个预填装寄存器preload reg的值会送入真正有效的寄存器active reg中”本人的翻译太差了。。。不过可以看出几个意思程序是往preload reg里写值当事件发生一个周期完成preload reg里的值会被送到active reg也就是shadow register中有硬件完成。真正在电路中起效的是shadow reg的值。第二步中的送不送可以由程序来决定。这样做的目的是为了让计数器的更新和正在运行的计数器相关属性的更新错开避免在计数过程中改值导致结果异常和期望的不同。比如假设ARR1000当CNT数到了500时把ARR改成了2000那么周期会变长PWM波形也会异常如果把ARR改成了400那么可能CNT要到0xFFFF溢出之后返回到0x0000新的ARR才会真正生效这个得到的结果显然不是我们想要的。计数器有预装和无预装上图中原本的ARR0xFF当改成0x36则这个ARR立即生效可以看出counter register到了0x36的值就归零了。这个图示情况还正常但是如果我们改成的是0x30可以看出在修改的时候counter register的值已经过了0x30了。那么就有可能counter register会一直增加到0xFFFF溢出从0x0开始然后0x30的ARR才会看上去生效.上图这个例子中开始ARR0xF5后来是把它改成0x36可以发现在修改的时候counter register已经过了0x36了。这个时候counter register一直增加直到以0xF5的ARR为标准上报了事件之后0x36才开始被写入shadow register被电路所用。计数器是否需要preload可以通过ARPE寄存器来设置。STM32这样设计了这种“影子寄存器”机制还是比较严谨的。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

脉冲编码器选型指南:如何评估专业厂家与供应商筛选流程 2026/10/2 11:50:07

脉冲编码器选型指南:如何评估专业厂家与供应商筛选流程

1. 脉冲编码器采购前必须想清楚的三个问题很多人一上来就问“哪家脉冲编码器厂家专业”,这个问题其实问反了。我在工业自动化配套这行摸爬滚打十来年,经手的编码器选型和替换案例少说也有几百个,真正决定你买得对不对的,不是厂家名…

阅读更多 →
AI时代小白程序员必备:OpenCode 搭配 TaoToken 统一 Key 的大模型编程新思路,开局就是架构师! 2026/10/2 11:50:07

AI时代小白程序员必备:OpenCode 搭配 TaoToken 统一 Key 的大模型编程新思路,开局就是架构师!

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
ST语言数据类型选型避坑指南:从BOOL到LREAL的精度与溢出实战 2026/10/2 11:49:53

ST语言数据类型选型避坑指南:从BOOL到LREAL的精度与溢出实战

1. 数据类型选型为什么是个隐形杀手搞ST语言(Structured Text,结构化文本)的朋友,尤其是从梯形图转过来的,十有八九在数据类型上栽过跟头。梯形图里一个线圈就是BOOL,一个计数器就是INT,简单粗暴…

阅读更多 →
免费PDF合并软件推荐!电脑手机通用,无水印超好用 2026/10/2 11:49:47

免费PDF合并软件推荐!电脑手机通用,无水印超好用

日常办公、学习经常会遇到PDF文件太多,需要合并成一个完整文档的情况。但网上大部分工具都很坑:要么打着免费幌子,合并后强制加水印;要么限制使用次数、限制文件大小;还有的需要充值会员才能解锁基础合并功能。今天给大…

阅读更多 →
【Bug已解决】Claude Code Skill 无法自动触发解决方案:把 settings 改到 TaoToken 2026/10/2 11:49:47

【Bug已解决】Claude Code Skill 无法自动触发解决方案:把 settings 改到 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
像写代码一样做特效动画:Claude Code 搭配 Remotion 的 Agent Skills 配置指南(含 TaoToken 统一 Key 接入) 2026/10/2 11:49:47

像写代码一样做特效动画:Claude Code 搭配 Remotion 的 Agent Skills 配置指南(含 TaoToken 统一 Key 接入)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉