|
在用Keil对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler函数里的死循环while(1)中。" |; I" S" B% v2 X! O* A, I; j 2 f: i: f v6 b4 s3 Z q8 ` 这说明STM32出现了硬件错误。
硬件错误中断 STM32出现硬件错误可能有以下原因:, [( D% ~- x) w4 g3 E# g. H1、数组越界操作;' d) Q" u# D* v; x) f 2、内存溢出,访问越界;5 f: z( u6 K3 y+ X- {0 H/ O 3、堆栈溢出,程序跑飞; 4、中断处理错误; 遇到这种情况,可以通过以下2种方式来定位到出错代码段。7 u2 C2 E8 o! G C- N4 L; C ! J( L& P+ a) u- e 1 ^( u M, V# q# H9 T 方法: 在硬件中断函数; d6 x5 y' R9 v* B HardFault_Handler 里的, g, k. A5 |2 J* g, ?/ ~9 Y( @ while(1)+ m) i. D' Y% |# s3 O* g0 Y 处打调试断点,程序执行到断点处时点击* L& [5 x2 O. c S STOP 停止仿真。2 M1 T. K1 p0 ?) A& i$ }/ [
|
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
STM32L562DK探索板——串口通讯的再测试
STM32L562DK探索板——继续深入了解Audio Play的工作流程
STM32L562DK探索板——触摸菜单实验之触摸测试
STM32L562DK探索板——触摸菜单实验之LED闪烁
STM32L562DK探索板——给Audio Play添加音量控制功能
STM32L562DK探索板——重写Led闪烁demo
STM32L562DK探索板——触摸菜单的实验
STM32L562DK探索板——简单的显示变量函数
经验分享 | STM32 IAP应用时的跳转注意事项
微信公众号
手机版