完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
关于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的接地电容正常 当我更换完这两个电容为正常容量之后,板子跑的正常了。问题总算是解决了。在此记录一下粗心带来的麻烦,也希望帮到遇见相同问题的朋友。 |
|
|
|
只有小组成员才能发言,加入小组>>
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
2531 浏览 0 评论
3344 浏览 9 评论
3023 浏览 16 评论
3515 浏览 1 评论
9119 浏览 16 评论
1246浏览 3评论
637浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
627浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2376浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1940浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-26 15:09 , Processed in 1.014926 second(s), Total 77, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号