我们知道,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实际是使用内部高速晶振在跑的,没超频,当然就可以擦除程序啦,用镊子短接晶振,就是为了让晶振状态无法稳定,是不是很简单呢?
利用类似原理,其实还有其他操作也可以解决,小伙伴们有想到吗?没错,就是把晶振从板子上拆下来,等程序被擦除后,再焊接回去。
其实这个方法也适用于进入低功耗后无法下载的问题,当然前提是用的外部晶振。
关键字:GD32 下载程序
引用地址:
GD32 MCU超频后无法再次下载程序的解决办法
推荐阅读最新更新时间:2024-11-12 20:22
ESP32、GD32、STM32MCU的区别
01 前言 STM32:意法半导体在 2007 年 6 月 11 日发布的产品,32位单片机。 GD32:兆易创新 2013 年发布的产品,在芯片开发、配置、命名上基本模仿 STM32,甚至 GPIO 和 STM32 都是 pin to pin 的,封装不改焊上去直接用。有时候 STM32 的源码不修改,重新编译烧写到 GD32 上就可以跑。当然也有很多不同,比如串口驱动、USB 、库文件等。 ESP32:乐鑫公司 2017 年开发的产品,和 STM32、GD32 不同,ESP32 主要面向物联网领域,支持功能很多,但引出 GPIO pin 脚很少,因此大多数 GPIO 都有很多复用功能。出厂就集成蓝牙、WiFi 等物联网必备功
[单片机]
【GD32 MCU 入门教程】六、GD32 MCU 选项字节设置及解除方法
您在使用GD32过程中是否遇到过芯片反复复位,代码无法更新,代码一直执行在0x1fffxxxx区域,或代码执行在SRAM区域的情况?如果有遇到这类现象是否找到原因呢?如果没找到是否检查过选项字节是否正常呢?这一章节我们针对各系列的选项字节设置和解除做一个相关说明,后续遇到上述问题可以考虑一下是否是选项字节配置错误导致。 1 .各系列选项字节说明 GD32L23x/GD32E50x系列选项字节: GD32E103/GD32E11x/GD32VF103/GD32C103/GD32C113GD32F10x/GD32F20x/GD32F30x/GD32F403系列选项字节介绍: GD32F1x0/GD32F3x0/GD32E230
[单片机]
STM32 用ST-Link V2下载程序、仿真
1.Option Debug 选择ST-Link Debugger 2.点Setting 选SW模式 3.Flash Download选项页选Erase Full Chip模式,把Reset and Run勾上 这样下载直接运行程序就OK。 遇到的问题: no st-link detected: 到Keil MDK 安装目录下的运行ARM/STLink 下的ST-LinkUpgrade.exe升级你的ST-LInk V2固件解决问题。
[单片机]
如何通过JLINK下载程序(附JLINK驱动)
一、打开所要下载的工程,先编译,然后进行软件配置 二、在project项目栏右击,选择Optionsfor Target ‘Target 1’ - Debug,如图选择Use内容 三、配置Settings,配置如下,配置后按确定 四、设置Flash编程算法 五、JLINK接线方法 JLINK四个IO分别为VCC、SWDIO、SWCLK和GND,用杜邦线把J_Link 和开发板的 JTAG/SWD 连接起来,连线方法根据原理图所示: JLINK里面的SWDIO和SWCLK直接和开发板的JTAG/SWD 的7、9 引脚直接相连,即是PA13和PA14。(注意:J_Link接上后有供电作用,就不用再供电了
[单片机]
LPC11UXX ISP 通过 USB 下载程序操作步骤
一.打开你的 Keil 工程,点击 option 图标,如下图红色框图标: 二.使能有效性校验设置步骤,具体操作如下: 1. 点击 User : 2. 勾选RUN#1 3. 点击图标选择 ElfDwT.exe (在 Keil 软件安装目录下:Keil_v5 - ARM - BIN) 4. 双击打开ElfDwT.exe 5. 在 RUN#1框中键入 #L 如: C:\Keil_v5\ARM\BIN\ElfDwT.exe #L ---调用ELFDWT.EXE命令使能有效性校验。 三.生成 bin 文件操作步骤,具体操作如下: 1. 重复上述页面,勾选RUN#2 2. 点击图标选择 f
[单片机]
51单片机学习:定时器0实验
实验名称:定时器0实验 接线说明: 实验现象:下载程序后,D1指示灯间隔1s闪烁 注意事项: ***************************************************************************************/ #include reg52.h typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8; //定义LED1管脚 sbit LED1=P2^0; /********************************************************************
[单片机]
GD32代码移植STM32(一)
GAIWEI例子:GD32F103移植STM32F103 使用相同FLASH和管脚数量相同的芯片,例如GDF103C8T6移植STM32F103C8T6程序。虽然两个款芯片的寄存器地址以及架构基本相同。但是需要注意的是GD32F10x主频是108兆,但是STM32F10x主频是72兆。所以需要针对以RCC时钟进行修改。 1.先将芯片的选项进行修改:查找对应芯片。 2.将STM32的启动文件替换成GD的启动文件。 3.修改时钟相关配置。 打开stm32f10x.h文件,#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) /*! Time out for HSE start up
[单片机]
【GD32 MCU 入门教程】一、GD32 MCU 开发环境搭建(3)使用 Embedded Builder 开发 GD32
3.1 安装 JAVA 环境 Embedded Builder 是一款基于 Eclipse 和 Java 平台的软件,需要安装 java 环境,在 Oracle 官网下载 https://www.oracle.com/java/technologies/downloads/, 以 jdk-8u152-windows-x64.exe 为例,下载后管理员身份打开并安装,记住安装路径,如“D:Program FilesJavajdk1.8.0_351”。 编辑系统变量,将 Java 环境添加到系统环境中。首先在系统变量中添加JAVA_HOME 这个变量。 编辑系统变量中的 Path 变量,单击新建,添加如下两个变量。 在系统
[单片机]