|
在用Keil对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler函数里的死循环while(1)中。 0 W1 u5 Z3 h- @: i8 L% ^ 7 B6 W8 T' X* \5 D5 S% O9 `" V 这说明STM32出现了硬件错误。6 |' a1 Z! p& _
硬件错误中断 STM32出现硬件错误可能有以下原因:0 D; H* m! m/ H4 m2 i6 K$ i5 l3 Q1、数组越界操作;3 {; V# ?" M; [ 2、内存溢出,访问越界; 3、堆栈溢出,程序跑飞; 4、中断处理错误;6 C; n" Y! Y8 |1 i! K 遇到这种情况,可以通过以下2种方式来定位到出错代码段。% X( V3 z) O( }' c. C - z! p) W( h+ x8 K- F 方法: 在硬件中断函数/ }" r" H M6 q9 k6 Q% o HardFault_Handler, C6 I) E5 v6 X+ t, o2 h 里的 while(1)1 n" Z! ~5 \5 N7 b 处打调试断点,程序执行到断点处时点击2 Z0 m) h) B$ C! r, K STOP$ |0 ?4 y& b* f1 p 停止仿真。0 t: V1 K! b3 f R
|
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
STM32L562DK探索板——串口通讯的再测试
STM32L562DK探索板——继续深入了解Audio Play的工作流程
STM32L562DK探索板——触摸菜单实验之触摸测试
STM32L562DK探索板——触摸菜单实验之LED闪烁
STM32L562DK探索板——给Audio Play添加音量控制功能
STM32L562DK探索板——重写Led闪烁demo
STM32L562DK探索板——触摸菜单的实验
STM32L562DK探索板——简单的显示变量函数
经验分享 | STM32 IAP应用时的跳转注意事项
微信公众号
手机版