[STM32F1] 受到干扰后会出现HardFault中断

[复制链接]
4238|61
 楼主| huangchui 发表于 2022-12-10 10:53 | 显示全部楼层 |阅读模式
由于外部接感性负载,干扰比较强,受到干扰后会出现HardFault中断,我的目标是尽量恢复现场,有什么好的方法没有,求好的建议
chuxh 发表于 2022-12-10 10:55 | 显示全部楼层
主要从硬件设计着手解决干扰问题,尽量不要出现HARDFAULT通过软件设计可以解决一部分干扰带来的问题
supernan 发表于 2022-12-10 10:57 | 显示全部楼层
但对复杂情况无能为力,而且会带来系统状态的短时失常,有点亡羊补牢的意味
 楼主| huangchui 发表于 2022-12-10 11:01 | 显示全部楼层
硬件当然有做,但是不能保证100%都解决,就是说如果出现HardFault,软件要怎么处理,就像最后都使用看门狗一样
liliang9554 发表于 2022-12-10 11:03 | 显示全部楼层
进去以后马上软件复位
zhanghqi 发表于 2022-12-10 11:04 | 显示全部楼层

出现HARDFAULT一般是误操作内部某些非法资源,很多情况下非法读写非合理ram
gongche 发表于 2022-12-10 11:07 | 显示全部楼层
由于干扰进入HARDFAULT还基本少见。
happy_10 发表于 2022-12-10 11:10 | 显示全部楼层
再者,从HARDFAULT角度,既然硬件HARDFAULT了,相当于死机了,软件只能重启,
bqyj 发表于 2022-12-10 11:13 | 显示全部楼层

至于重启方式,一般使用狗,当然你可以选择别的方式
 楼主| huangchui 发表于 2022-12-10 11:16 | 显示全部楼层
软件重启是一种做法,但是这样变成内存又重新初始化过,还是不能尽量恢复现场
renyaq 发表于 2022-12-10 11:18 | 显示全部楼层

把比较重要的现场数据都保存下啊;
复位后,判断是上电复位还是什么复位
dingy 发表于 2022-12-10 11:43 | 显示全部楼层
先找出hardfault的根本原因,应该是由于干扰,令程序对一些异常条件处理出现问题导致的。
zhanghqi 发表于 2022-12-10 11:45 | 显示全部楼层
重启用狗是8位mcu常用之道,不过 cortex M内核 是提供了 内核重启和cpu重启寄存器控制命令的
yszong 发表于 2022-12-10 11:49 | 显示全部楼层
加抗干扰的器件
dengdc 发表于 2022-12-10 11:56 | 显示全部楼层
端口设计保护电路。
dingy 发表于 2022-12-10 11:59 | 显示全部楼层
你这就是脉冲造成的吧?
端口设计上脉冲防护功能。
jiajs 发表于 2022-12-10 12:00 | 显示全部楼层
干扰会导致hardfault?学习了!
jiajs 发表于 2022-12-10 12:06 | 显示全部楼层
硬件HARDFAULT了,相当于死机,软件只能重启
ousj 发表于 2022-12-10 12:08 | 显示全部楼层
铺地或者加一个屏蔽壳
 楼主| huangchui 发表于 2022-12-10 12:32 | 显示全部楼层
哦,那我就知道怎么回事了,多谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

918

主题

12323

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部