打印

香主:帮助小弟一下!

[复制链接]
1968|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pi, GPIO, IO, gp, TI
1:我将GPIOB的端口中GPIO_PIN_7设为中断口,GPIO_PIN_4也设为中断口。这两个中断的入口是一样的,那怎么区别是GPIO_PIN_7还是GPIO_PIN_4触发的中断?就是在中断处理中怎样区分是哪个中断源?

2:我将GPIO_PIN_7中断类型EXTI_SENSITIVITY_FALL_ONLY;GPIO_MODE_IN_FL_IT
但是GPIO_PIN_7一直为低也能进入中断,这又是怎么回事?

项目现在卡在这里了,香主帮我看看是什么原因
沙发
lvluo| | 2009-9-27 14:40 | 只看该作者
1:  if(EXTI_GetITStatus(EXTI_Line4) != RESET)
      {
          EXTI_ClearITPendingBit(EXTI_Line4);
       }
2:  if(EXTI_GetITStatus(EXTI_Line7) != RESET)
      {
          EXTI_ClearITPendingBit(EXTI_Line7);
       }
不知道我理解的对不对,应该这样就可以区分了。如果是GPIO_Pin_4产生中断,就执行1),如果是GPIO_Pin_7产生中断,就执行2)了

使用特权

评论回复
板凳
香水城| | 2009-9-27 14:49 | 只看该作者
1)在进入中断后,通过读出外部中断挂起寄存器(EXTI_PR),可以知道是哪个中断源。

2) 估计你没有清除外部中断挂起寄存器(EXTI_PR)中的标志,所以一直进入中断。

请看STM32参考手册中的相关内容。

STM32_EXTI_PR.GIF (13.41 KB )

STM32_EXTI_PR.GIF

使用特权

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

本版积分规则

9

主题

30

帖子

1

粉丝