|
在用Keil对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler函数里的死循环while(1)中。4 m, G7 u- Y0 a3 ?9 n. A+ t ) r" Q8 B. X( a 这说明STM32出现了硬件错误。
硬件错误中断 STM32出现硬件错误可能有以下原因:1、数组越界操作;& {; n0 g! {. ? 2、内存溢出,访问越界;5 w8 W6 l( ^, X$ E `8 a 3、堆栈溢出,程序跑飞;* C; O0 e- N: F3 e7 I 4、中断处理错误; a" ?: Q+ T7 x' E; b$ X* c5 N! }2 B- [ 遇到这种情况,可以通过以下2种方式来定位到出错代码段。 - B0 }: ]* y$ a \$ @ 方法: 在硬件中断函数: J( g8 g. _6 c! F5 q# \- I- x HardFault_Handler4 K( N. X: A# i 里的 while(1) 处打调试断点,程序执行到断点处时点击8 g. l! P3 D' V5 L7 L5 n, F7 m. H STOP 停止仿真。* Q* f, M' D E% J9 _0 K5 _$ {
|
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
STM32L562DK探索板——串口通讯的再测试
STM32L562DK探索板——继续深入了解Audio Play的工作流程
STM32L562DK探索板——触摸菜单实验之触摸测试
STM32L562DK探索板——触摸菜单实验之LED闪烁
STM32L562DK探索板——给Audio Play添加音量控制功能
STM32L562DK探索板——重写Led闪烁demo
STM32L562DK探索板——触摸菜单的实验
STM32L562DK探索板——简单的显示变量函数
经验分享 | STM32 IAP应用时的跳转注意事项
微信公众号
手机版