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

[复制链接]
3222|12
手机看帖
扫描二维码
随时随地手机跟帖
小熊猫123|  楼主 | 2025-1-21 11:11 | 显示全部楼层 |阅读模式
有前面板和底板俩板子,底板通电(部分器件不启动),给前面板供电,总开关开后,软开关脚位为高,按前面板软开关,为低后,程序里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 | 显示全部楼层
仿真看看

使用特权

评论回复
评论
小熊猫123 2025-1-22 09:25 回复TA
仿真就是到 git bit set ( PG3) 进去后就是他自己写好的 GPIO_BOP 然后 继电器打高了响了,接着就直接跳到startup汇编里去了,会不会是这个脚和芯片的reset接触到了? 
zchong| | 2025-1-21 18:41 | 显示全部楼层
看一下复位寄存器里的值,估计是掉电了

使用特权

评论回复
stormwind123| | 2025-1-21 19:00 | 显示全部楼层
在程序中,可以通过软件指令触发复位操作,如调用特定的复位函数或修改复位寄存器会导致系统跳转到ResetHandler。

使用特权

评论回复
评论
小熊猫123 2025-1-22 09:27 回复TA
软件复位的nvic_systemreset在更新文件的程序里有,但这一段已经注掉了,而且机器也没进入更新文件的操作 
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 | 显示全部楼层
学习一下,提升自己

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝