关于STM32输入捕获中断引发定时器更新(溢出)中断

2019年1月28日 0条评论 114次阅读 92.6分 未分类

今天本来做一个很简单的项目,要测脉宽,结果陷入莫名奇妙的bug:一开始一切都是对的,但是程序跑一会儿就会进入HardFault中断,我根本没怎么操作内存也没数组怎么就硬件错误呢?仔细分析脉宽测量程序,发现每隔几百毫秒(时间不定),就会出现测量值不正确的情况,遂开始单步调试,得出以下结论:STM32在判断输入捕获时会同时引发定时器更新中断

请看如下程序:

如果上述程序19行被去除,你在任何进入TIM3的CC2中断时候单步程序,会发现总是能进Update更新或称溢出中断,所以会引起MyCC1.Overflow的自加不正确,从而无法正确测量超过一个定时器周期的脉宽。

最后友情提醒,当初始化定时器中断时也要先清一下中断标志位,否则可能会出现刚初始化完就莫名其妙进中断的情况,贴出我的程序片段以供参考:

 

Please wait...
 

关于STM32输入捕获中断引发定时器更新(溢出)中断》上有1条评论

  1. Pingback引用通告: viagra

发表评论