GD32 MCU超频后无法再次下载程序的解决办法

我们知道,MCU的系统时钟主频就相当于人的心跳或脉搏,为所有的工作单元提供时间基数,所以一般在程序最开始的地方都需要进行主频配置。

GD32固件库中提供了多种宏定义,可以很方便的将系统时钟配置为想要的频率。

GD32固件库中所用的外部晶振配置一般为8M或25M,如果想要使用其他频率的晶振,可以参考FAQ《更改晶振后如何修改配置》。

有的小伙伴在做好PCB后,将程序下载进去发现运行异常,想要仿真查下原因时,发现下载不了程序了,这时候就要注意,是不是板子上的晶振和程序中配置的不匹配?比如程序中使用的晶振大小为8M,但板子上的是12M的晶振,结果你以为配置的是120M的主频,实际变成了180M了,这超频可太多了,当然就无法再下载程序啦。

那如何解决这个问题呢?有个方法就是让MCU进入ISP模式,小伙伴们可以参考FAQ《GD32 MCU进入低功耗模式导致无法再进行程序下载怎么办?》中的“方法一”,和超频无法下载类似。

我们今天讲述另一种方法,那就是启动MCU的时候,用镊子把外部晶振的OSC_IN和OSC_OUT脚短接起来,然后把程序擦除即可。没错,就是这么简单粗暴。

原理其实也很简单,使用GD32 固件库时,一般在进入main函数之前都会进行系统时钟配置,配置函数中在开启外部晶振后会有等待晶振稳定的过程,如果在一定时间内无法稳定,则会进入while(1)循环(小伙伴们可以自行增加超时退出的操作哦),在这个过程中,MCU实际是使用内部高速晶振在跑的,没超频,当然就可以擦除程序啦,用镊子短接晶振,就是为了让晶振状态无法稳定,是不是很简单呢?

利用类似原理,其实还有其他操作也可以解决,小伙伴们有想到吗?没错,就是把晶振从板子上拆下来,等程序被擦除后,再焊接回去。

其实这个方法也适用于进入低功耗后无法下载的问题,当然前提是用的外部晶振。

还有一个方面,JTAG如果连接了芯片复位引脚,可以使用在复位状态下连接。

摘自:GD32 MCU超频后无法再次下载程序的解决办法-电子发烧友网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值