shiweicl1314 发表于 2021-1-17 18:59

AT32F403A系统复位问题

芯片是AT32F403A,在调用这个系统复位函数后发现板子一直处于复位状态无法自动重启,必须要重新断一次电上电才能运行, 之前用的是GD32F103RC的芯片因为管脚兼容所以直接就换上测试了,在GD32上是能正常复位并且能自动重启,板子的RST管脚没有使用处于悬空的状态。


xyz549040622 发表于 2021-1-17 21:10

试着复位引脚接个RC复位看看。

shiweicl1314 发表于 2021-1-17 23:39

xyz549040622 发表于 2021-1-17 21:10
试着复位引脚接个RC复位看看。
问题已经解决了,

shiweicl1314 发表于 2021-1-17 23:46

经过一步步的屏蔽测试,最后找到了原因,当系统时钟超过72M需要使用到下面这个寄存器,其中的5:4位(时钟切换自动平滑功能)必须设置,同时注意到这个寄存器的最低4位是保留为,但发现这个寄存器的复位值为0X0000000D,正是因为我将低4位也设置为了0才导致了一系列问题,也就是说这个寄存器的低4位很可能有某些功能,具体什么功能不得而知,但是可以得出的结论是,将低4位清零后调用NVIC_SystemReset() 函数芯片复位后无法自动重启,同时会影响到调试功能,也就是无法连接到在线调试设备。

jcky001 发表于 2021-1-18 09:08

复位引脚接个RC复位

fcccc 发表于 2021-1-18 15:02

感谢分享;
任何MCU使用中不要去操作寄存器的保留位.

084425 发表于 2021-1-19 23:42

参看库函数就没问题了,关于有些保留位不能操作的问题,新版RM也会更明确说明
页: [1]
查看完整版本: AT32F403A系统复位问题