[MM32软件] 怎么知道MCU是否是异常复位?

[复制链接]
6627|78
mollylawrence 发表于 2024-12-10 12:39 | 显示全部楼层
电源滤波不足、电磁干扰、PCB布局不合理等都可能影响
claretttt 发表于 2024-12-10 14:02 | 显示全部楼层
在MCU中实现异常记录机制,如使用EEPROM或闪存记录复位前的关键信息。
AloneKaven 发表于 2024-12-10 15:11 | 显示全部楼层
加打印日志吧
phoenixwhite 发表于 2024-12-10 15:36 | 显示全部楼层
大多数 MCU 都有内置的复位标志寄存器。
adolphcocker 发表于 2024-12-10 16:36 | 显示全部楼层
如果NRST引脚(外部复位引脚)被拉低,且持续时间超过一定阈值(通常为20us),则会导致系统复位。因此,检查NRST引脚的电平状态也是判断复位原因的一种方法。
lzbf 发表于 2024-12-10 18:03 | 显示全部楼层
检查MCU的复位引脚(如NRST)的电平变化,可以通过外部电路(如上拉电阻、电容)来记录复位状态。
jonas222 发表于 2024-12-10 18:59 | 显示全部楼层
特别注意看门狗定时器的配置,确保其正常工作。
mollylawrence 发表于 2024-12-10 20:30 | 显示全部楼层
通过测量电源电压或检查电源管理电路,可以判断是否存在欠压情况。
timfordlare 发表于 2024-12-11 17:11 | 显示全部楼层
使用JTAG、SWD或者其他调试接口连接到MCU,并利用调试工具读取复位原因和其他相关信息。
pentruman 发表于 2024-12-11 20:04 | 显示全部楼层
异常复位可能由电源问题或时钟问题引起。检查电源电压是否稳定,是否在MCU规定的范围内。同时,确保时钟配置正确,没有超出MCU的主频工作范围。
alvpeg 发表于 2024-12-11 20:59 | 显示全部楼层
大多数MCU都会有一个或多个状态寄存器,这些寄存器在复位时会设置特定的位来指示复位的原因。
louliana 发表于 2024-12-11 21:26 | 显示全部楼层
如果怀疑硬件问题,可以通过电路分析来检查复位电路的元件,比如检查复位电容、电阻是否损坏,是否有短路或断路情况。
chenci2013 发表于 2024-12-11 22:21 | 显示全部楼层
查看复位源寄存器              
fengm 发表于 2024-12-12 10:58 | 显示全部楼层
许多MCU内部都有复位标志位,可以通过读取这些标志位来判断复位的原因
ingramward 发表于 2024-12-12 11:21 | 显示全部楼层
复位脚电平跳变或处于非预期的电平。
程序无法进入用户main()程序。
系统功能失控,表现为死机、重启或异常行为。
elsaflower 发表于 2024-12-12 11:49 | 显示全部楼层
在可能的情况下,记录MCU的操作和事件到日志中,如果在日志中发现了不正常的序列或中断,可能表明发生了异常复位。
hilahope 发表于 2024-12-12 13:16 | 显示全部楼层
使用外部电路监控MCU的电源,如果检测到电源异常(如下冲、过压等),可能会触发异常复位。
burgessmaggie 发表于 2024-12-12 14:12 | 显示全部楼层
检查软件代码,避免无限循环、内存泄漏等问题
earlmax 发表于 2024-12-12 15:25 | 显示全部楼层
检查喂狗操作是否合理,包括通讯是否完整、喂狗时机是否恰当、喂狗任务是否阻塞等。
eefas 发表于 2024-12-12 15:49 | 显示全部楼层
在某些情况下,程序可能会因为某些条件不满足而主动调用复位函数(如NVIC_SystemReset())。如果怀疑是软件复位导致的异常,可以检查程序中是否有相关的复位调用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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