stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)

这是系统中断服务程序的默认处理汇编函数,如果我们没有定义实现某个中断函数,那么当stm32产生了该中断时,就会默认跑这里来了,所以我们打开了什么中断一定要记得实现对应的系统中断函数,否则会进来一直循环在这里了。

(我是在弄正点原子的USB例程时候,由于stm32f1xx_it.c文件里的内容在PDF教程里没说要添加上,我就只拷贝了USB相关的驱动文件,然后运行就一直进入这个Infinite_Loop里了,踩了个小坑,涨涨经验吧!)

在starup_stm32f103xe.S文件里:

/**

* @brief This is the code that gets called when the processor receives an

* unexpected interrupt. This simply enters an infinite loop, preserving

* the system state for examination by a debugger.

*

* @param None

* @retval : None

*/

.section .text.Default_Handler,"ax",%progbits
Default_Handler :
Infinite_Loop :

b Infinite_Loop

.size Default_Handler, .-Default_Handler