相信很多人在调试STM32的时候都遇到过HardFault_Handler错误,刚开始接触的人,肯定最怕这个错误,因为这个问题的原因却是不好查,我看到网上很多人都给出了比较好的调试方法,我再调试的时候也发现了一个较好的调试方法,拿出来跟大家分享一下:
1) 在HardFault_Handler函数中添加一个break语句,即:
void HardFault_Handler(void)
{
while (1)
{
break;
}
}
调试的时候在break这一行设置一个断点,然后全速运行程序,等到出现HardFault_Handler错误的时候,程序就会停在break位置,然后选择F10或F11单步运行,程序就会回到出现HardFault_Handler错误的现场,并执行到造成HardFault_Handler这个错误的语句的下一句,
即如果回到现场后,程序指针指到了如下代码的第二行(b = 0)
a = 0;
b = 0;
那么引起HardFault_Handler错误的一般就是上一句(a = 0)引起的了,这样专注于检查a的问题就可以了,这样就缩小了范围了,插起来容易多了。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』