在IAR下做的程序,中断会进两次。

[复制链接]
1961|9
 楼主| mcuatmel 发表于 2013-5-29 11:03 | 显示全部楼层 |阅读模式
STM32F103,用了定时器中断和外中断,不知为什么同一次事件要连续进两次,请高手指点!
外中断程序:
void EXTI4_IRQHandler(void)
{

        ...
        EXTI->PR = EXTI_Line4;


定时器程序:
void TIM3_IRQHandler(void)
{       

        ...
        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);

}
杨爱林林 发表于 2013-5-29 11:46 | 显示全部楼层
难道你这个tim中断是 捕获嘛
mmuuss586 发表于 2013-5-29 12:02 | 显示全部楼层
不知道,没碰到过。
 楼主| mcuatmel 发表于 2013-5-29 13:27 | 显示全部楼层
回二楼:
  这个tim中断是计时中断,向上计数的,计数时基为1us。
IJK 发表于 2013-5-29 13:46 | 显示全部楼层
应该是老问题了。把清中断标志放在前面,而不是最后,应该就行了
quyifei 发表于 2013-5-29 15:28 | 显示全部楼层
你的EXTI4接的是是哪个PIN? 是PA4或者PB4 吗?
 楼主| mcuatmel 发表于 2013-5-29 15:48 | 显示全部楼层
5楼:按你说的我试下,还有这个说法啊,以前没注意过。
6楼:接的是PA4。这个有什么关系吗?
quyifei 发表于 2013-5-29 15:56 | 显示全部楼层
mcuatmel 发表于 2013-5-29 15:48
5楼:按你说的我试下,还有这个说法啊,以前没注意过。
6楼:接的是PA4。这个有什么关系吗? ...

那就没什么问题。 如果不是以4结尾的GPIO会出错,我以前出过这样的问题。
quyifei 发表于 2013-5-29 15:58 | 显示全部楼层
mcuatmel 发表于 2013-5-29 15:48
5楼:按你说的我试下,还有这个说法啊,以前没注意过。
6楼:接的是PA4。这个有什么关系吗? ...

还有关于定时器中断,先要读取中断status判断一下是什么引起的中断, 也许你开了其他的定时器中断。
 楼主| mcuatmel 发表于 2013-5-29 16:08 | 显示全部楼层
以前这些功能都是好用的,因为优化了程序,就不好用户了,不知为什么是这部分不好用。
我即便是开了其它定时中断,那么我在TIM3中清中断标志,也不该再进这个TIM3中断啊,现在还是这个现象,愁死了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

512

主题

1456

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部