外部中断号3,只可以映射到引脚PA3、PB3、PC3、PD3、PE3、PF3、PG3这一组中的任意一个(是一个,不是多个)引脚上,而不能映射其它引脚上。
同理,外部中断号4,只可以映射到引脚PA4、PB4、PC4、PD4、PE4、PF4、PG4这一组中的任意一个引脚上,而不能映射其它引脚上。
另外,外部中断只有7个处理接口,外部中断号0~4,才具有独立的中断处理接口,外部中断号5~9,共享一个中断处理接口,外部中断号10~15,共享一个中断处理接口。
参看 STM32F10x.s 中的中断向量表,可以更准确理解这一点。这里的实际就是中断函数,只要你修改本
文件中断函数名,你就可以使用自己中断函数名了,不过一般都用默认的就挺好的。
DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
基于上述原因,外部中断尽量只使用引脚号0~4,或5~9中的某一个,或10~15中的某一个,以简化中断处理的编写,同时也会缩短外部中断的处理时间(外部中断号5~9、10~15,如果不止对应一个中断号,则需要在中断处理程序来确定是哪个引脚产生的中断)。
中断注意事项:
中断发生后必须清除中断位,否则会出现死循环不断发生这个中断。
然后需要对中断类型进行判断再执行代码。
使用EXTI的I/O中断,在完成RCC与GPIO硬件设置之后需要做三件事:初始化EXTI、NVIC开中断、编写中断执行代码。
中断服务程序要力求精简,不然会死机。