打印

stm32 多中断一问

[复制链接]
3378|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hobbolo|  楼主 | 2010-8-11 15:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32的10-15号中断线条公用一个中断处理函数。请问下面哪种写法好 或者是对的 为什么呢。
一 :
void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line11) != RESET){
   //clear flag... do something..
}
if(EXTI_GetITStatus(EXTI_Line10) != RESET){
  //cllear flag... do something
}
}

二:
void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line11) != RESET){
   //clear flag... do something..
}
  else if(EXTI_GetITStatus(EXTI_Line10) != RESET){
  //cllear flag... do something
}
}

中断很频繁的时候 1会引发IWDG复位,我是在应用程序踢狗的。 本人菜鸟。希望各位大侠指点一下 :)



}
沙发
hobbolo|  楼主 | 2010-8-11 17:20 | 只看该作者
顶顶顶

使用特权

评论回复
板凳
香水城| | 2010-8-11 21:23 | 只看该作者
2个都可以,哪个适合就是哪个好,没有统一标准。

使用特权

评论回复
地板
yybj| | 2010-8-12 10:37 | 只看该作者
都可以的

使用特权

评论回复
5
dfsa| | 2010-8-12 15:25 | 只看该作者
你觉得哪种适合你的就是好的

使用特权

评论回复
6
IJK| | 2010-8-13 09:18 | 只看该作者
一般来说“一”更好点,因为在进入中断函数EXTI15_10_IRQHandler时,EXTI_Line11和EXTI_Line10中断可能都发生了

使用特权

评论回复
7
hobbolo|  楼主 | 2010-8-13 11:29 | 只看该作者
谢谢大家, 我的stm32f101vb用在智能小车,我用左右轮测速功能,左右轮子每走1cm会产生42个中断,一秒钟左右轮各会产生2000左右个中断,加上5个红外遥控接收头。不停的有信号中断进来,加上systick的中断,相当于每毫秒会有6-7个中断。
这么多中断可能真的太频繁了。 才导致死机的。 我只能偶尔去用测速功能调速一下 。 不然跑10几分钟就挂了。。。

使用特权

评论回复
8
hobbolo|  楼主 | 2010-8-13 11:30 | 只看该作者
如果我把串口中断打开了 好像更容易引起看门狗IWDG复位。 我是在应用程序里踢狗的。

使用特权

评论回复
9
香水城| | 2010-8-13 11:52 | 只看该作者
谢谢大家, 我的stm32f101vb用在智能小车,我用左右轮测速功能,左右轮子每走1cm会产生42个中断,一秒钟左右轮各会产生2000左右个中断,加上5个红外遥控接收头。不停的有信号中断进来,加上systick的中断,相当于每 ...
hobbolo 发表于 2010-8-13 11:29


这么多中断,应该是算法设计的不好,;P

使用特权

评论回复
10
pkat| | 2010-8-13 14:20 | 只看该作者
我习惯“一”的写法

使用特权

评论回复
11
秋天落叶| | 2010-8-13 15:03 | 只看该作者
都是对的,我比较倾向于第一种写法

使用特权

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

本版积分规则

5

主题

30

帖子

1

粉丝