从 STM32F10x 系列移植到 GD32F30x 系列 
 
 
 
 
 
 
 
 
 
 
 
 
从 STM32F10x 系列移植到 GD32F30x 系列 
目录 
目录 ....................................................................................................................................... 1 
1.  前言 ................................................................................................................................ 3 
2.  硬件差异 ......................................................................................................................... 3 
3.  内部资源对比 ................................................................................................................. 3 
4.  软件环境设置 ................................................................................................................. 3 
4.1.  使用 Keil 开发 GD32F30x ..................................................................................................... 4 
4.1.1  在 Keil4 中添加 GD32F30x MCU Device ................................................................................................... 4 
4.1.1.  在 Keil5 中添加 GD32F30x MCU Device ................................................................................................... 6 
4.2.  使用 GD-Link 开发 GD32F30x ............................................................................................... 8 
4.3.  使用 J-Link 开发 GD32F30x ........................................................................................... 10 
4.4.  MDK 使用常见问题解答 ................................................................................................... 12 
4.4.1.  Keil4 打开 Keil5 工程 ............................................................................................................................ 12 
4.4.2.  Keil5 打开 Keil4 工程 ............................................................................................................................ 12 
4.4.3.  GigaDevice.GD32F30x_DFP.pack 特性 ............................................................................................ 12 
4.4.4.  Pack 包对 keil 版本要求 ....................................................................................................................... 13 
4.4.5.  Keil5 打开 Keil4 工程,编译报错 ........................................................................................................ 13 
4.5.  使用 IAR 开发 GD32F30x ................................................................................................ 14 
4.5.1.  在 IAR 中添加 GD32F30x MCU Device ............................................................................................. 14 
4.5.2.  在 IAR 中编译调试 GD32F30x ............................................................................................................ 15 
5.1. 
System ............................................................................................................................... 18 
5.1.1.  HSE 注意事项 .......................................................................................................................................... 18 
5.1.2.  如何通过软件区分 GD32 和 STM32 ...................................................................................................... 18 
5.1.3.  GD32F30x Flash 取指零等待,软件方面注意事项 ............................................................................... 18 
5.1.4.  GD32F30x 上电启动异常常见原因 ........................................................................................................ 18 
5.1.5.  MCU 无法正常使用 SWD 下载程序 ...................................................................................................... 18 
5.1.6.  代码超过 256K 后执行速度慢 ............................................................................................................... 19 
5.2.  CAN .................................................................................................................................. 19 
5.2.1.  CAN 离线后无法自动恢复 ................................................................................................................... 19 
5.2.2.  CAN 接收异常,接收两帧数据会丢一包数据.................................................................................... 19 
5.3.  ADC .................................................................................................................................. 19 
5.3.1.  ADC 采集数据异常问题分析 ............................................................................................................... 19 
5.3.2.  ADC1 和 ADC2 同步模式下,ADC2 注入组无数据 ......................................................................... 19 
5.3.3.  ADC_CR2 中的 ADCON 使用注意事项 ............................................................................................. 20 
5.3.4.  ADC  查询法采集数据,出现通道错乱的情况................................................................................... 20 
5.3.5.  ADC 工作在 DMA 模式下通道数据错乱 ............................................................................................ 20 
5.4.  SPI .................................................................................................................................... 20 
5.4.1.  SPI 通信 BSY 标志位 ........................................................................................................................... 20 
1 
 
 
从 STM32F10x 系列移植到 GD32F30x 系列 
5.4.2.  SPI 从机模式管脚模式.......................................................................................................................... 20 
 
5.5.  Uart .................................................................................................................................. 20 
5.5.1.  Uart    DMA 注意事项 ........................................................................................................................... 20 
5.6.  Flash ................................................................................................................................ 21 
5.6.1.  Flash 函数修改要点.............................................................................................................................. 21 
5.6.2.  Flash 操作地址问题.............................................................................................................................. 22 
 
2 
 
 
 
 
 
1. 前言 
 
 
从 STM32F10x 系列移植到 GD32F30x 系列 
本文档就专门介绍从 STM32F10x 移植到 GD32F30x 系列的相关细节,如有纰漏还望见谅。 
2. 硬件差异 
 
LQFP48 
LQFP64 
LQFP100 
LQFP144 
GD32F30x 
STM32F10x 
管脚全兼容 
管脚全兼容 
管脚全兼容 
管脚全兼容 
3. 内部资源对比 
GD32F303 
GD32F305/307 
STM32F103 
STM32F105/107 
M3R1P1 
16K-1M 
6K-96K 
72M 
4/5/8/14 
2/3/5 
1/2 
1/2/3(2) 
1 
Device 
0/1 
-- 
1 
2(10)/2(16) 
/3(16)/3(21) 
2 
M3R1P1 
64K/256K 
64K 
72M 
8 
5 
2 
3(2) 
2 
OTG 
-- 
0/1 
-- 
2(16) 
2 
 
Core 
Flash 
RAM 
主频 
TIMER 
U(S)ART 
I2C 
SPI (I2S) 
CAN 
USB 
SDIO 
Eth 
EXMC 
M4R0P1 
256K-3M 
48K-96K 
120M 
7/8/13/14 
3/5 
2 
3(2) 
1 
Device 
0/1 
-- 
0/1 
M4R0P1 
128K-1M 
64K/96K 
120M 
7/8/14 
5 
2 
3(2) 
2 
OTG 
-- 
0/1 
0/1 
ADC 
3(10)/2(16)/3(21) 
2(16) /2(21) 
DAC 
2 
2 
4. 软件环境设置 
GD32F30x系列为通用型MCU,所以开发环境也可以使用通用型的IDE,目前使用较多的
是KEIL,IAR和Visual GDB,客户可以根据个人喜好来选择相应的开发环境,该文档主要
介绍KEIL和IAR这两种开发环境。 
3 
 
 
 
 
从 STM32F10x 系列移植到 GD32F30x 系列 
4.1.    使用 Keil 开发 GD32F30x 
目前市面通用的MDK for ARM版本有Keil 4和Keil 5:使用Keil 4建议安装4.74及以上;使
用Keil 5建议安装5.20以上版本。 
4.1.1   在 Keil4 中添加 GD32F30x MCU Device 
1.  从 MCU 官 网 或 网 盘 下 载 相 关 的 GD32F30x 系 列 插 件 MDK-
ARM_AddOn_GD32F30x_V1.0.0.rar。 
图  4.1 GD32F30x 系列  MCU 型号支持 pack 包名称(keil4) 
2.  双击解压安装至Keil  4的目录,一般都会默认选择,如若同时安装了Keil  4和Keil  5才
 
需要手动选择。 
图  4.2 Pack 包安装示意图(keil4) 
3.  安装成功后,重新打开Keil 4,则可以在File->Device Database中出现Gigadevice的
下拉选项,点击可以查看到相应的型号。 
 
 
4 
 
 
图  4.3 Pack 包成功安装示意图(keil4) 
 
 
从 STM32F10x 系列移植到 GD32F30x 系列 
4.  为了后续debug工作的顺利进行,建议检查一下安装路径下是否有下载算法,可以通
过如下方式查看:打开一个工程,将型号选为GD32F30x的型号,然后Options  for 
Target -> Debug ->Settings -> Flash Download-> Add,如果下拉选项中有GD32F30x
的下载算法则完全安装成功。 
图  4.4 Flash 算法文件选择示意图(keil4) 
 
 
5 
 
 
 
 
从 STM32F10x 系列移植到 GD32F30x 系列 
4.1.1.  在 Keil5 中添加 GD32F30x MCU Device 
1.  从相关网站下载相关的GD32F30x系列插件Keil.GD32F30x_DFP.1.1.0.rar。 
图  4.5 GD32 MCU 型号支持 pack 包名称(keil5) 
2.  解压并安装至Keil 5的目录,一般都会默认选择。 
图  4.6 Pack 包安装示意图(keil5) 
 
 
3.  安装完后重新打开keil5工程,即可在Device->Database中出现Gigadevice的型号 
6 
 
 
图  4.7 Pack 包安装成功示意图(keil5) 
 
 
从 STM32F10x 系列移植到 GD32F30x 系列 
 
 
4.  在Options for Target -> Debug ->Settings ->Flash Download  中添加flash算法,会出
现GD32F30X的算法,即说明安装成功。根据相应的芯片选择合适的算法,即可下载
仿真。 
图  4.8 Flash 算法文件添加示意图(keil5) 
 
 
5.  用Keil 5打开Keil 4工程,如果报找不到器件信息等错误,将Keil 4的插件安装在Keil 5
的目录下,具体操作方式参考Keil 4插件相关内容。 
7