在用Keil对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler函数里的死循环while(1)中。 " L+ I H9 }1 l1 c& j2 |' O 这说明STM32出现了硬件错误。4 f8 P4 B3 q) g$ \9 l, W% J 硬件错误中断 STM32出现硬件错误可能有以下原因:1、数组越界操作;- w0 S2 ~, V' T9 {# E 2、内存溢出,访问越界; 3、堆栈溢出,程序跑飞; 4、中断处理错误; 遇到这种情况,可以通过以下2种方式来定位到出错代码段。6 i) Q2 N5 a2 n6 a1 ?- E + g" g. c# p. { % q( ~" H; r+ m( | 方法:2 ?7 m9 ?/ g8 S* o, `# Q- H 在硬件中断函数 HardFault_Handler 里的! o5 [4 D2 ?; v8 N2 t) ~7 U while(1) 处打调试断点,程序执行到断点处时点击2 X3 l. U) ^; F, [7 e/ Y7 p STOP 停止仿真。/ Y8 Z& J8 j: q, \# j- z1 W |
【NUCLEO-C0评测】硬件OLED显示
基于STM32 Azure USBx 开发的经验分享
NUCLEO-U545RE-Q评测】4. 串口实用收发测试
NUCLEO-U545RE-Q板卡评测 (第二篇外传)UART的单线半双工的上拉电阻问题
基于STM32代码的启动过程经验分享
基于STM32串口如何发送字符串经验分享
基于STM32 GPIO 经验分享
基于STM32模拟UART串口通信
ClassB在STM32CubeIDE上的移植可能遇到的问题
基于STM32看似无法唤醒的一种异常现象经验分享