搜索
bottom↓
回复: 9

关于STM32中断多进的问题总结

[复制链接]

出0入0汤圆

发表于 2010-7-20 12:13:38 | 显示全部楼层 |阅读模式
以下是转帖,使用stm32的朋友注意了
luckytoad发表于 2010-7-16 12:08
楼主:[STM32] 关于STM32中断多进的问题总结
1、问题提出:如果你操作不当STM32的中断每次会进2次。
2、验证方法:如下面的1ms中断程序:
void TIM6_IRQHandler(void)                  //1ms
{
  ms_100_cntdbu++;
  if ((TIM6->SR & 0x0001) != 0)    // check interrupt source
  {                 
                ms_100_cnt++;
                   TIM6->SR &= ~(1<<0);                          // clear UIF flag        
   }
               
}
     你会看到  ms_100_cntdbu =2*  ms_100_cn
如果增加硬件管脚指示,从示波器上很容易看到1ms内中断近了2次,但1ms中断技术没问题,也就是说SR标志清掉了,SR中也没有其他标志置位,进中断是保存下来看。
     其他所有的中断都是这个问题。我验证了,不是仿真,是真运行。
3、解决方法:清中断标志,只要不是中断函数的最后一条语句就没问题了。
4、指令流水线问题。其他的片子有的也会有这问题。
5、结论:如果你对程序要求不严,可以不用管它,不会影响到你应用的。否则参照3.
如果你的习惯是先清中断后干活,你不会碰到这个问题。如果你使用的是库函数差标志,也不会碰到这个问题。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-7-20 14:34:33 | 显示全部楼层
刚也遇到了这个问题,正郁闷呢

出0入0汤圆

发表于 2010-7-20 18:54:46 | 显示全部楼层
这个很重要呀,看来还是先清除标志位比较好。

出0入8汤圆

发表于 2010-7-21 08:23:01 | 显示全部楼层
中断进了要先清中断标志这是常识,
需要注意的是ST的MCU有些中断标志清除不是直接对标志位置零,而是对某些寄存器读操作,硬件自动清零

出0入0汤圆

发表于 2010-7-21 13:49:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-12 01:09:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2014-4-10 11:02:31 | 显示全部楼层
我就犯了这样的错误,保证下次不犯了!

出0入0汤圆

发表于 2014-12-17 12:53:03 | 显示全部楼层
加上
“中断进了要先清中断标志这是常识,
需要注意的是ST的MCU有些中断标志清除不是直接对标志位置零,而是对某些寄存器读操作,硬件自动清零”

学习了,,,刚就是怎么只是配置的下降沿中断,结果按下中断,松开也中断,搞死人....

出0入0汤圆

发表于 2014-12-17 14:01:46 | 显示全部楼层
Grant 发表于 2010-7-21 08:23
中断进了要先清中断标志这是常识,
需要注意的是ST的MCU有些中断标志清除不是直接对标志位置零,而是对某些 ...

您好,您在此贴中说了“中断进了要先清中断标志这是常识”
如程序,如果先把中断标志清楚了,那么中断程序不就执行不了了吗,,,

但是我调试的时候的确进不了,而运行的时候却进得去,,,而且经常会是进两次中断,可以请教下吗..

void EXTI9_5_IRQHandler(void)
{
        EXTI_ClearITPendingBit(EXTI_Line7);
        if(EXTI_GetITStatus(EXTI_Line7) != RESET)
        {       
                //do something
        }
}

出0入0汤圆

发表于 2014-12-17 18:19:54 | 显示全部楼层
进入中断后应该先清除中断标志位比较好
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-17 17:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表