小熊猫123 发表于 2025-1-21 11:11

求助】gd32f470什么情况下会进入ResetHandler?

有前面板和底板俩板子,底板通电(部分器件不启动),给前面板供电,总开关开后,软开关脚位为高,按前面板软开关,为低后,程序里gpio_bit_set再给power_on脚位打高(主板给底板没启动的硬件通电),结果现在一打高,c语言程序直接跑飞到startup里面的reset_handler了。
我直接用470i例程去控这俩脚,一样的,按了软开关,后面power_on继电器是响了,但后续就是跑到reset_handler了,请问啥情况下会进入reset_handler啊?除了芯片通电第一次,cpu的复位脚说是也没接出来按理来说也不会影响它的

laocuo1142 发表于 2025-1-21 14:56

当GD32F470系统发生复位时,控制流将跳转到ResetHandler。

flycamelaaa 发表于 2025-1-21 14:57

电源故障恢复后,系统可能也会触发复位并进入ResetHandler。

小熊猫123 发表于 2025-1-21 15:07

求助】gd32f470什么情况下会进入ResetHandler?

目前试了一下,这个脚位初始是PP推挽,默认是低,按了开关后程序里给它拉高,之后进入bit set后就直接跳到汇编reset handler。我单独改成OD开漏后,默认就是高了,现在程序正常走了(没上面从低打高继电器那一下了)但按理来说前端板子就该给后面器件供电了,硬件还是没电。
主要是前面一个问题,后面没电估计是硬件。为啥给PG3开机为低后面拉高后就直接跳汇编复位呢?是脚位链接错误了?

powerantone 发表于 2025-1-21 16:00

低功耗模式唤醒后

xionghaoyun 发表于 2025-1-21 17:10

仿真看看

zchong 发表于 2025-1-21 18:41

看一下复位寄存器里的值,估计是掉电了

stormwind123 发表于 2025-1-21 19:00

在程序中,可以通过软件指令触发复位操作,如调用特定的复位函数或修改复位寄存器会导致系统跳转到ResetHandler。

probedog 发表于 2025-1-21 20:00

如果系统在运行过程中遇到无法处理的异常,并且没有适当的异常处理程序来捕获和处理这些异常,系统可能会触发复位并进入ResetHandler。然而,这种情况下的复位机制可能因具体的异常类型和配置而异。

小熊猫123 发表于 2025-1-23 13:45

求助】gd32f470什么情况下会进入ResetHandler?

目前暂时解决了,和软件无关,主要应该是初始化这个二级开关的端口和按了一级软开关后把二级开关置高,这个过程需要时间非常短,应该是后部硬件反冲到cpu使得cpu重启了,目前解决方法就是改顺序。之前是初始部分脚位、初始前端软开关、初始二级开关,然后检测前端软开关(while循环),直到按了软开关break后,二级开关置高,再继续初始lcd等后续脚位。
现在改成不过早初始二级开关了,把初始二级和置高放一起。
初步来看就是while等这段时间,我后来试了试哪怕减去了while等待按键响应,单独加个delayms,1、10毫秒还行,像1000毫秒就不行了。

Amazingxixixi 发表于 2025-1-24 13:46

学习一下,提升自己

梅花香自123 发表于 2025-2-28 16:15

给底板和前面板供电时,可能由于电源电压的波动或者电流的瞬间变化,导致了复位引脚的触发。
页: [1]
查看完整版本: 求助】gd32f470什么情况下会进入ResetHandler?