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