记录代码进入Default_Handler错误的解决办法
1 问题表述
在一次调试代码的时候,发现代码卡死在启动文件 startup_stm32l431xx_.s 的355行,即 B. 处
B.是汇编代码,B:跳转到一个标号,这里跳转到一个‘.’,即表示无限死循环
通过在Debug窗口可以定位到,程序是进入Default_Handler错误

image
2 问题分析
使用某个外设的时候,开启了某个中断,但是又忘记编写配套的中断服务程序或者函数名写错,那当中断来临的时,程序就会跳转到启动文件预先写好的空的中断服务程序中,并且在这个空函数中无线循环,即程序就死在这里
在启动文件里面已经帮我们写好所有中断的中断服务函数,跟我们平时写的中断服务函数不一样的就是这些函数都是空的,即虚函数,真正的中断服务程序需要我们在外部的 C 文件里面重新实现,这里只是提前占了一个位置

image
知道了这些基础知识,在重新检查代码时候,发现在串口驱动函数处未使用DMA,但开启了DMA中断,却没有中断服务函数,导致了Default_Handler错误
3 总结
在开启了某个中断,但是又忘记编写配套的中断服务程序或者函数名写错,代码会进入Default_Handler错误,即 B. 死循环
上一篇:STM32 LL库串口中断
下一篇:STM32 GPIO复用及重映射
- 热门资源推荐
- 热门放大器推荐
- C8051F560DK,C8051F562 8051 MCU 工业应用开发系统
- AD8604ARZ放大器光电二极管电路的典型应用
- LTC1709-8 的典型应用 - 2 相、5 位 VID、电流模式、高效率、同步降压型开关稳压器
- LTC6990CDCB#TRMPBF 光到频率转换器的典型应用。 fOUT 至 -1.4kHz 每微安光电二极管电流 IPD
- LT3088HM 线性稳压器用于添加软启动的典型应用
- 电机控制闭环系统
- DI-163 - 宽范围机顶盒电源,带锁存过压(OVP)关机保护功能
- AKD7736B-A,AK7736B 2CH SRC 音频处理器评估板
- 用于恒流源的 NCP431B 可编程精密基准的典型应用
- 1.8V、1.8V DC-DC多路输出手机电源

现代雷达系统的信号设计
HMMC-5220

BFR340T






京公网安备 11010802033920号