中断5-9里面有多个中断怎么判断呢

2019-10-14 22:28发布

void EXTI9_5_IRQHandler(void)
{
        if(EXTI_GetITStatus(EXTI_Line6)!=RESET)                //判断中断6是否发生
        {①}
        if(EXTI_GetITStatus(EXTI_Line8)!=RESET)                //判断中断8是否发生
        {②}
}
这样子能分辨中断5-9里面具体是6还是8中断吗,中断6触发会运行②吗,实验现象好像相互影响了

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
我是路人甲
2019-10-16 13:29
本帖最后由 我是路人甲 于 2017-2-28 11:51 编辑
沧海 发表于 2017-2-28 11:38
这个是不会影响的,但你得清除掉相应的标志位。


void EXTI9_5_IRQHandler(void)
{
        if(EXTI_GetITStatus(EXTI_Line6)!=RESET)                //判断中断6是否发生
        {①        EXTI_ClearITPendingBit(EXTI_Line6);            //清除中断标志位
        }
        if(EXTI_GetITStatus(EXTI_Line8)!=RESET)                //判断中断8是否发生
        {②
          EXTI_ClearITPendingBit(EXTI_Line8);            //清除中断标志位
        }
}
实际是这样的,去测试就是相互影响了,如果屏蔽1个中断就正常

一周热门 更多>