单片机学习小组
直播中

klysa

13年用户 1250经验值
私信 关注

怎样去解决STM32中HardFault_Handler错误的问题

是什么原因导致STM32中HardFault_Handler错误的?
怎样去解决STM32中HardFault_Handler错误的问题?

回帖(1)

王秀云

2022-1-17 10:38:12
关于STM32中HardFault_Handler错误的问题

最近在做一个项目,有两个板,其中一个板工作完全正常,另一个板在运行的时候经常会跑飞,Debug的时候定位到总会跳到HardFault_Handler看的while循环中。后面还经常的会在Hal_Delay中死掉。
开始的时候不连st-link的时候可以正常的时间长一些,连上st-link还经常无法单步执行直接跑飞!在网上也找了关于HardFault_Handler的相关解决办法,一般都是说什么堆栈越界,内存溢出等问题,这种肯定都是软件的问题。所以我感觉这个肯定不单单只是软件问题才会导致HardFault出现。
注意并不一定非得是软件问题才会导致HardFault问题!!!

我两个板刷相同的程序的时候一个板可以正常运行,另一个却总是跑飞到HardFault中。
1、检查复位威廉希尔官方网站 :因为未设置手动按钮复位,所以我用别的东西短接实现手动复位,发现复位工作不是稳定,短接的时候(相当于复位按键按下)MCU可以停止运行,松开后不一定运行。但是用软件Debug的时候可以正常的运行,当然肯定还是会跑死。跑死的时间还很随机。于是更换复位威廉希尔官方网站 的电阻,由原来的100K更换为10K上拉,发现复位还是不稳定。再更换电容,问题依旧。去掉上拉(因为MCU内部带有弱上拉)也不行。应该不是复位威廉希尔官方网站 的问题;
2、检查BOOT威廉希尔官方网站 ,测量BOOT0和BOOT1接地都正常,我也尝试过飞地线到BOOT的接地电阻上,担心接地不良,也不行。只有在烙铁焊完热的时候能正常一会,每次复位也都可以正常复位。网上的威廉希尔官方网站 关于BOOT引脚的接地电阻有接10K的也有接100K的,我也都试过,还是未解决。所以排除BOOT引脚问题。
3、以上两点都排除了相来相去想到我用的是F429还有两个VCAP引脚是要经过电容接地的。于是赶快排查这两个电容,推荐是2.2uF,我拆除后用表测电容只有0.6nF,MD,这差的也太多了,于是更换VCAP1和VCAP2引脚的接地电容为2.2uF。我记得我焊的时候明明用的也是2.2uF的电容,难道是焊的时候电烙铁太热弄坏了?不知道什么原因。
更新一下,忘记写了,晶振威廉希尔官方网站 包括芯片我都更换过!!!
更换VCAP_1和VCAP_2的接地电容正常

当我更换完这两个电容为正常容量之后,板子跑的正常了。问题总算是解决了。在此记录一下粗心带来的麻烦,也希望帮到遇见相同问题的朋友。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分