由于 GPIO 引脚按组进行了分类,同组的引脚只能使用其中一个与外部中断线连接具备外部中断功能。例如,PA0、PB0、PC0、PD0、PE0、PF0、PG0和PH0这些引脚作为一组,如果我们使用PA0引脚作为外部中断引脚,那么该组的其余引脚就不能作为外部中断引脚使用。因此,从本质上讲,可供用户同时使用的外部中断引脚最多只有16个。
在上图中还可以看出,NVIC为EXTI所管理的16个外部中断线提供了7个中断通道。外部中断线0(EXTI0)、外部中断线1(EXTI1)、外部中断线2(EXTI2)、外部中断线3(EXTI3)和外部中断线4(EXTI4),这5个外部中断线可以连接到独立的中断通道具有独立的中断服务程序。外部中断线5至外部中断线9(EXTI5-EXTI9)则连接到同一个中断通道EXTI9_5_IRQ,共享同一个中断服务程序。外部中断线10至外部中断线15(EXTI10~EXTI15)也是连接到同一个中断通道EXTI1510R,共享同一个中断服务程序。对于共享中断通道(中断服务程序)的外部中断线,在进行中断处理前,还需要判断是哪一个GPIO引脚触发的本次外部中断。
|