STM32F229 TIMER CNT问题
CPU:STM32F429ZGT6开发环境:STM32CubeMX,KEIL V5.29.0.0
问题是这样的,有一个不定期任务,要判定执行是否正常(以时间判定)。1、在任务开始时启动Timer,并开启Timer中断。(这个没啥问题)2、若执行到定时中断,则判定任务失败。 (这个没啥问题)
3、若任务执行成功,则可在Timer中断来临前,提前关闭Timer及中断;
4、但是现在发现提前关闭Tiimer及中断后,Timer的CNT寄存器仍在不停的计数,导致下次任务时,计时错误,故不能正确的判断任务执行。
在HAL环境中,关闭Timer及中断后,怎么关闭CNT计数,及怎么清零CNT,翻了半天的库也没找到相关代码。
请懂的看看问题所在?
在定时器中断里要关闭定时器好像有点困难,应该设置一个标志位,在主循环中判断标志位置位时关闭定时器并清零计数器。 wenyangzeng 发表于 2020-5-28 15:27
在定时器中断里要关闭定时器好像有点困难,应该设置一个标志位,在主循环中判断标志位置位时关闭定时器并清 ...
按您的思路,
我把定时器中断回调函数中的 “ 关Timer 关中断代码删了”
然后在外部“ 关Timer 关中断”
Tmer居然真的停止了,并且CNT不再计数(未自动置零)
虽然这样可行了,但Timer中断后,不但要回调,还要在外部循环中关闭Timer,感觉定时准确性会大打折扣,
大神位还有什么好方法吗?
jyl518-283289 发表于 2020-5-28 16:31
按您的思路,
我把定时器中断回调函数中的 “ 关Timer 关中断代码删了”
然后在外部“ 关Timer 关中断 ...
其实STM32的定时器输入捕捉功能就非常适合运行楼主所需功能。可以不用关闭CNT,也无需关闭定时器。
官方的F1例程可以参考
页:
[1]