巧用STM32 硬件错误函数HardFault_Handler调试和保护系统
我们在使用STM32的前期调试系统的过程中,或则是程序正式运行过程中,可能会由于逻辑出错,或是内存异常访问,造成系统进入硬件错误中断HardFaultException。(比如越界访问、指针异常以及别的原因,造成MCU进入异常中断)
我们此时可以利用这个中断来进行调试,更重要的是可以在这里面做保护,尽量降低风险。
具体使用:
STM32 的启动文件里,有“硬件错误中断函数”。

1、作为调试
当我们的程序已经发生硬件错误时。只要实现“硬件错误中断函数”的具体内容,并在里面输出你所需要检测的变量。
比如我的函数里,调试信息是简单的通过串口输出“HF”字符,用以提示程序进入硬件异常。
一旦程序发生硬件错误,则函数会运行到这,通过调试信息就可以知道产生“硬件错误”。
同理,对应的上位机要和下位机定个简易协议接收到某些数据,就是发生异常了。
如下图:

系统先正常运行。接着定义个野指针随意执行,故意产生异常。使系统进入硬件错误异常中断去执行保护。
2、作系统保护
如果控制的设备和我一样,是大电压、大功率设备,则进入硬件错误异常时,可以先通知上位机发生异常,并反馈几个重要参数。最后再给高压系统断电,起到保护作用或者重启系统。如下图:

当然这个函数具体起到什么作用,可根据实际灵活应用。最重要的是要保障人身安全以及保护系统。
以上就是如何利用STM32 硬件错误函数HardFault_Handler调试和保护系统的方法。
本文介绍了如何巧妙利用STM32的硬件错误中断函数HardFault_Handler进行系统调试和保护。当遇到逻辑错误或内存异常导致的硬件错误中断时,可以在该函数中添加调试信息或保护措施。通过串口输出调试信息,配合上位机协议,可以及时发现异常。在大电压、大功率设备的应用中,HardFault_Handler可用于通知上位机并采取断电等保护措施,确保人身安全和系统稳定。
6524

被折叠的 条评论
为什么被折叠?



