首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即时更改预分频器并立即使用

即时更改预分频器并立即使用
EN

Stack Overflow用户
提问于 2021-10-27 09:49:17
回答 1查看 174关注 0票数 0

我成功地通过使用以下命令动态更改了时钟TIM2的预分频器

代码语言:javascript
复制
__HAL_TIM_SET_PRESCALER(&htim2,newValue);

但是,在计数器重置为零之前,它会以旧的速度计数。

我可以强制程序立即使用新的预分频值吗?

我正在使用STM32L052K8Tx

EN

回答 1

Stack Overflow用户

发布于 2021-10-27 11:23:31

STM32F10x参考手册(大多数STM32都有相同的计时器):

PSC包含在每次更新事件(包括通过TIMx_EGR寄存器的UG位或配置为“复位模式”时通过触发控制器清除计数器时)加载到有效预分频器寄存器中的值。

你必须等到计数器到零。可通过EGR寄存器中的UG位强制执行此事件,这将重置CNT并强制重新加载。如果你需要保持CNT值,不可能在没有获得Update事件的情况下使用PSC实时“调优”计时器速度。

但是您可以尝试使用一个计时器作为另一个计时器的预分频器,在主从模式下运行两个计时器。第一个定时器的ARR无需缓冲即可重新加载(TIMx_CR1中的APRE位=0),第二个定时器不受影响。请参阅参考手册中的“定时器同步”章节和示例,如库中的TIM_Synchronization。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69736381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档