你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32小技巧】STM32硬件错误的调试技巧

[复制链接]
y369369 发布时间:2022-10-7 19:13
在用Keil对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler函数里的死循环while(1)中。
. i, Q* }1 Q$ }% q
3 Z7 k, x  y- i! @9 l, J) u
" L+ I  H9 }1 l1 c& j2 |' O
这说明STM32出现了硬件错误。4 f8 P4 B3 q) g$ \9 l, W% J
12.png
硬件错误中断
STM32出现硬件错误可能有以下原因:
7 w) X% \+ T4 k; g) b/ D+ g1、数组越界操作;- w0 S2 ~, V' T9 {# E
2、内存溢出,访问越界;
3 i) J- k8 @9 \4 ~2 d/ t9 K' V3、堆栈溢出,程序跑飞;
  r+ D) d: q1 F4 v) ~& M% v" a4、中断处理错误;
8 J% c" o2 U+ R$ D# t; f) L遇到这种情况,可以通过以下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
在硬件中断函数
" T5 p' X* B( S* LHardFault_Handler
) D/ g+ [: @6 a" |, i* ^' o里的! o5 [4 D2 ?; v8 N2 t) ~7 U
while(1)
# ]8 J5 W& Z* b1 r: n处打调试断点,程序执行到断点处时点击2 X3 l. U) ^; F, [7 e/ Y7 p
STOP
- M# O- s6 R+ q/ a7 v1 i6 H9 G停止仿真。/ Y8 Z& J8 j: q, \# j- z1 W
11.png
. A- W( c1 P4 X5 y; h) D
收藏 评论0 发布时间:2022-10-7 19:13

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版