打印
[STM32F0]

STM32定时器停不下来...

[复制链接]
2678|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
new_luc|  楼主 | 2015-4-29 10:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我配置了高级定时器TIM1产生PWM波,用IAR在线调试的时候,全速运行,点击reset之后,TIM1依然输出,要再次点击reset,TIM1才能停止输出。而且,每次点击“下载和在线调试之后”,TIM1就自动运行,而且输出的占空比是上一次在线调试的时候的占空比,并不是我开始配置的占空比,有人遇到过这种情况么?诡异的很啊。
沙发
new_luc|  楼主 | 2015-4-29 14:29 | 只看该作者
caosix 发表于 2015-4-29 14:22
你 是不是 用了  DMA 哦。。。

PWM 输出,总是会输出,,哪怕你 停在断点里:

嗯,用了DMA传输完成中断,用于把ADC转换过来的值读进来,和定时器没有关系的。

调试时点击全速运行了之后,PWM确实会一直输出,但是我刚把程序下载进去准备调试,跳到main函数,我还没点运行呢,也就是程序里面定时器的时钟那个时候都还没有配置呢,定时器就已经在输出PWM了。。。这个就很奇怪了。

使用特权

评论回复
板凳
wowow| | 2015-4-29 14:31 | 只看该作者
STM32Cube_FW_F4_V1.5.0库里有这样的宏,F0的宏里应该也有类似的:
#define __HAL_DBGMCU_FREEZE_TIM1()           (DBGMCU->APB2FZ |= (DBGMCU_APB2_FZ_DBG_TIM1_STOP))

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
dexis + 1 很给力!
地板
new_luc|  楼主 | 2015-4-29 14:56 | 只看该作者
caosix 发表于 2015-4-29 14:42
不可能哦,俺 Cube 配置好 Tim2,Tim5 的 PWM ,
如果 不执行 下面的 语句,是不会有 波形输 ...

嗯,我最早的时候也是跟你说的一样的,配置好定时器,执行类似你用的PMW_Start语句之后,PWM才会输出的,现在不行了,不执行PMW_Start它就输出了,而且占空比是上次断电时候的占空比(我的占空比是动态可调的),而不是最初配置的占空比。我现在怀疑是上电reset不成功导致的。

使用特权

评论回复
5
new_luc|  楼主 | 2015-4-29 14:57 | 只看该作者
wowow 发表于 2015-4-29 14:31
STM32Cube_FW_F4_V1.5.0库里有这样的宏,F0的宏里应该也有类似的:
#define __HAL_DBGMCU_FREEZE_TIM1()     ...

这个怎么用啊,F0里面确实有,我找到了。#define  DBGMCU_APB1_FZ_DBG_TIM6_STOP 这样的。

使用特权

评论回复
6
wowow| | 2015-4-29 15:41 | 只看该作者
new_luc 发表于 2015-4-29 14:57
这个怎么用啊,F0里面确实有,我找到了。#define  DBGMCU_APB1_FZ_DBG_TIM6_STOP 这样的。 ...

初始化TIMx时调用一下啊,当仿真器停止ARM时,设置某个TIM是停下来还是继续跑。

使用特权

评论回复
7
new_luc|  楼主 | 2015-4-29 16:07 | 只看该作者
wowow 发表于 2015-4-29 15:41
初始化TIMx时调用一下啊,当仿真器停止ARM时,设置某个TIM是停下来还是继续跑。 ...

嗯,我试试,就在TIMx配置刚开始之前调用一哈

使用特权

评论回复
8
mmuuss586| | 2015-4-29 18:36 | 只看该作者

还有这个特殊功能啊,一直没注意到呢;

使用特权

评论回复
9
lvyunhua| | 2015-4-29 20:10 | 只看该作者
不错,学习了。

使用特权

评论回复
10
hclwj181| | 2015-4-30 09:16 | 只看该作者
我觉得最大的可能是你的单片机喝了脉动,所以肯本停不下来

使用特权

评论回复
11
new_luc|  楼主 | 2015-5-10 20:55 | 只看该作者
hclwj181 发表于 2015-4-30 09:16
我觉得最大的可能是你的单片机喝了脉动,所以肯本停不下来

应该是吃了炫迈

使用特权

评论回复
12
amanda_s| | 2015-5-11 14:22 | 只看该作者
wowow 发表于 2015-4-29 15:41
初始化TIMx时调用一下啊,当仿真器停止ARM时,设置某个TIM是停下来还是继续跑。 ...

学习了!谢谢!

使用特权

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

本版积分规则

2

主题

13

帖子

0

粉丝