Bootstrap

关于中断向量表中没有EXTIx_IRQHandler的问题

如果你在中断向量表查找中断向量服务函数时,没有查找到EXTI7_IRQHandler等,是因为中断向量中根本就没有这个函数。

STM32 的中断向量表通常由启动文件(如 startup_stm32f1xx.s)定义。在该文件中,所有的中断服务例程(ISR)都会按照特定的顺序列出,包括外部中断(EXTI)。但是在 STM32F103 中,外部中断的线路 5 到 9(包括 EXTI7)会共享一个中断向量,因此,EXTI7 的中断服务函数是 EXTI9_5_IRQHandler

EXTI Line 5 到 EXTI Line 9 共享一个中断向量,即 EXTI9_5_IRQHandler,这是因为它们使用相同的硬件中断线路。EXTI Line 7 不会单独有 EXTI7_IRQHandler,而是由 EXTI9_5_IRQHandler 统一处理。

因此,您需要使用 EXTI9_5_IRQHandler 来处理 EXTI Line 7 的中断。(EXTI15_10_IRQHandler同理)

中断向量表所拥有的外部中断服务函数:

EXTI1_IRQHandler,EXTI2_IRQHandler,EXTI3_IRQHandler,EXTI4_IRQHandler,EXTI9_5_IRQHandler,EXTI15_10_IRQHandler

配置是这样配置的:

;