打印

ST的定时器配置问题

[复制链接]
227|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Candic12e|  楼主 | 2025-3-20 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一般使用TIM的TIM_Cmd(TIM2, DISABLE);  功能的话,在启用是不是需要重新配置定时器?我看网上建议直接关闭定时器的输出功能就行,不用关闭定时器。这样再启动配置还在。这样对吗?

使用特权

评论回复
沙发
yangjiaxu| | 2025-3-20 16:56 | 只看该作者

ST的定时器配置问题

是这样的,这样启动定时器会非常快,而且配置参数也不需要重新配置了

使用特权

评论回复
板凳
香水城| | 2025-3-20 17:59 | 只看该作者
TIM_CMD()只关心计数器的起停,不影响其它定时器配置,即其它配置不因计数器的起停而改变。

使用特权

评论回复
地板
时光贩卖机| | 2025-3-20 22:02 | 只看该作者

ST的定时器配置问题

是这样的,相当于正常运行一样,只是没有输出而已

使用特权

评论回复
5
Wordsworth| | 2025-3-21 08:02 | 只看该作者
还有一种方式是用 TIM_UpdateDisableConfig(),可以避免更新寄存器,这样即使 DISABLE 了,配置也不会变。

使用特权

评论回复
6
Bblythe| | 2025-3-21 08:03 | 只看该作者
你是遇到啥问题了吗?是 ENABLE 之后定时器没恢复正常工作吗?

使用特权

评论回复
7
Pulitzer| | 2025-3-21 08:05 | 只看该作者
这种做法在一些低功耗应用里挺实用的,省去了重新写配置的步骤,恢复速度快一点。

使用特权

评论回复
8
Uriah| | 2025-3-21 08:06 | 只看该作者
其实很多库函数底层就是直接操作寄存器,具体可以看看 TIM_Cmd() 这个函数干了啥。

使用特权

评论回复
9
Clyde011| | 2025-3-21 08:07 | 只看该作者
如果不确定,可以试试 HAL_TIM_Base_Start() 这种 HAL 库方式,有些时候 HAL 处理得更稳妥。

使用特权

评论回复
10
公羊子丹| | 2025-3-21 08:09 | 只看该作者
直接用 TIM_Cmd(TIM2, DISABLE); 确实会停掉定时器,但寄存器配置应该不会变,重新 ENABLE 就能恢复运行。

使用特权

评论回复
11
周半梅| | 2025-3-21 08:10 | 只看该作者
你说的方式没问题,关闭定时器的输出功能,比如 TIM_CCxCmd(TIM2, TIM_Channel_1, TIM_CCx_Disable);,这样不会影响定时器本身的配置。

使用特权

评论回复
12
帛灿灿| | 2025-3-21 08:11 | 只看该作者
其实看应用需求,有些情况下 DISABLE 也没问题,比如定时器用完就彻底关掉,下次重新配置也不会影响性能。

使用特权

评论回复
13
童雨竹| | 2025-3-21 08:12 | 只看该作者
这种方法适合需要定时器参数保持不变的情况,但如果需要改动某些参数,可能还是得重新配置一下。

使用特权

评论回复
14
万图| | 2025-3-21 08:14 | 只看该作者
我之前试过,直接 DISABLE 然后 ENABLE,定时器还能正常跑,配置也都在,没啥问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

1607

帖子

2

粉丝