当前位置: 代码迷 >> 单片机 >> 关于STM32的中断线,该如何处理
  详细解决方案

关于STM32的中断线,该如何处理

热度:103   发布时间:2016-04-28 15:03:37.0
关于STM32的中断线
各位好,我想问下,在STM32的中断配置中,一条中断线上可以设置多个GPIO吗?比如我把中断线0配置了PA0,PB0,PC0,PE0,代码如下

/*
函数功能:配置中断线0,PA0,PB0,PC0,PE0为线中断口
输入:无
输出:无
调用:内部调用
*/
static void EXTI_Configuration0()
{
EXTI_InitTypeDef EXTI_InitStructure;

/*中断线配置*/
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource0);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource0);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource0);
EXTI_InitStructure.EXTI_Line=EXTI_Line0; //中断线0
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//下降沿中断
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
EXTI_Init(&EXTI_InitStructure);
}

这样可以吗?
------解决方案--------------------
不可以
“STM32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组位一个单位的,同组间的外部中断同一时间只能使用一个。比如说,PA0,PB0,PC0,PD0,PE0,PF0,PG0这些为1组,如果我们使用PA0作为外部中断源,那么别的就不能够再使用了,在此情况下,我们只能使用类似于PB1,PC2这种末端序号不同的外部中断源。”
【STM库应用】stm32 之 中断按键初始化(注意事项)
stm32库函数学习篇---NVIC与外部中断