从 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