在用Keil对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler函数里的死循环while(1)中。 % @* D) k& l, \6 Z# o& }# t, X$ Z ' Y, L4 c: W; q5 ^! k* z 这说明STM32出现了硬件错误。- S4 z" \+ F1 [- Y 硬件错误中断 STM32出现硬件错误可能有以下原因:1、数组越界操作; 2、内存溢出,访问越界;8 H9 d7 O6 u, f1 o. ^ 3、堆栈溢出,程序跑飞;, C, A4 t7 M5 n8 l, B 4、中断处理错误;" J9 S; W; n, U) F( `+ a* c$ Q 遇到这种情况,可以通过以下2种方式来定位到出错代码段。9 R$ U' i( x! d/ H! u! N4 | 9 k1 C3 a* H7 m 方法:4 t J( V5 k3 j, S( s 在硬件中断函数 HardFault_Handler+ M' }: F- M9 n8 T- z 里的. \5 H. x [" q while(1)4 B; O I( P9 {* i3 q) z p$ e 处打调试断点,程序执行到断点处时点击( _1 u5 g) |) H7 M STOP 停止仿真。 |
【NUCLEO-WB09KE评测】STM32WB09KE的内部BootLoader使用
【STM32H7S78-DK评测】XIP项目源码分析
基于STM32单片机软硬件结合经验分享
11111111111111111111111111111111111
STM32芯片ISP串口程序一键下载—FlyMcu
如何使用CubeMX实现STM32的串口通信以及对printf等函数的重定向
基于STM32串口中断之缓存区溢出卡死经验分享
【NUCLEO-C0评测】硬件OLED显示
基于STM32 Azure USBx 开发的经验分享
NUCLEO-U545RE-Q评测】4. 串口实用收发测试