GD32 系列微控制器入门开发指南
GigaDevice Semiconductor Inc.
GD32 系列微控制器入门开发指南
1.0 版本
( 2019 年 10 月)
GD32 系列微控制器入门开发指南
目 录
目 录 ......................................................................................................................................... 1
1.
GD32 MCU 开发资料下载 .............................................................................................. 5
1.1. 官网下载 .................................................................................................................................. 5
1.2. 网盘下载 .................................................................................................................................. 5
2.
GD32 MCU 开发环境搭建 .............................................................................................. 7
2.1. 使用 Keil 开发 GD32 .................................................................................................................. 7
2.1.1. 在 Keil4 中添加 GD32 MCU Device ....................................................................................................... 7
2.1.2. 在 Keil 5 中添加 GD32 MCU Device ...................................................................................................... 8
2.1.3. 使用 GD-Link 开发 GD32 ....................................................................................................................... 10
2.1.4. 使用 J-Link 开发 GD32 ........................................................................................................................... 12
2.1.5. 使用 ULink2 开发 GD32 ......................................................................................................................... 14
2.1.6. MDK 使用常见问题解答 ......................................................................................................................... 17
2.2. 使用 IAR 开发 GD32 ................................................................................................................ 18
2.2.1. 在 IAR 中添加 GD32 MCU Device ....................................................................................................... 18
2.2.2. 在 IAR 中编译调试 GD32 ....................................................................................................................... 18
2.3. 使用 Eclipse 开发 GD32 ........................................................................................................... 22
2.3.1. 安装 JDK .................................................................................................................................................. 22
2.3.2. 安装 Eclipse ............................................................................................................................................. 22
2.3.3. 安装 ARM 交叉编译链 ............................................................................................................................ 23
2.3.4. 测试 ........................................................................................................................................................... 24
2.3.5. 安装 GUN ARM Eclipse 插件包 ................................................................................................................. 25
2.3.6. 安装 OpenOCD .......................................................................................................................................... 26
Eclipse 的使用 ........................................................................................................................................... 27
2.3.7.
3.
GD32 MCU 烧录说明 .................................................................................................... 30
3.1.
ISP 烧录 .................................................................................................................................. 30
ISP 烧录工具 ........................................................................................................................................... 30
ISP 引脚分配 ........................................................................................................................................... 31
ISP 下载电路 ........................................................................................................................................... 31
ISP 下载流程介绍.................................................................................................................................... 32
ISP 烧录注意事项.................................................................................................................................... 40
3.1.1.
3.1.2.
3.1.3.
3.1.4.
3.1.5.
3.2.
SWD/JTAG 在线下载 ............................................................................................................... 40
SWD/JTAG 引脚定义 .............................................................................................................................. 41
3.2.1.
SWD/JTAG 烧录软件 .............................................................................................................................. 41
3.2.2.
SWD/JTAG 下载电路 .............................................................................................................................. 41
3.2.3.
Jlink 仿真器接口 ...................................................................................................................................... 42
3.2.4.
3.2.5. GD-link 仿真器接口 ................................................................................................................................. 43
J-flash 下载流程 ........................................................................................................................................ 43
3.2.6.
GD-link Programmer 下载流程 ................................................................................................................. 47
3.2.7.
SWD/JTAG 烧录注意事项 ...................................................................................................................... 49
3.2.8.
3.3. 脱机烧录 ................................................................................................................................ 49
3.3.1. GD-link 脱机烧录硬件连接 ..................................................................................................................... 49
3.3.2. GD-link 脱机烧录流程 ............................................................................................................................. 50
1 / 220
GD32 系列微控制器入门开发指南
3.3.3. GD-link 固件更新 ..................................................................................................................................... 52
3.3.4. GD-link 脱机烧录注意事项 ..................................................................................................................... 52
4. 固件库使用方法和启动流程介绍 ................................................................................... 53
5.
GD32 MCU 常见外设介绍 ............................................................................................ 58
5.1. RCU 时钟介绍 ......................................................................................................................... 58
RCU 配置 ................................................................................................................................................. 58
5.1.1.
5.1.2. 非默认外部晶振配置时钟实例 ............................................................................................................... 59
5.1.3. 硬件连接说明 ........................................................................................................................................... 61
5.1.4. 软件配置说明 ........................................................................................................................................... 61
5.1.5. 运行结果 ................................................................................................................................................... 62
5.2. GPIO 模块介绍 ........................................................................................................................ 64
5.2.1. GPIO 基础知识 ........................................................................................................................................ 64
5.2.2. 备用功能(AF) ...................................................................................................................................... 66
I/O 重映射功能 ......................................................................................................................................... 67
5.2.3.
5.2.4. 硬件连接说明 ........................................................................................................................................... 68
5.2.5. 软件配置说明 ........................................................................................................................................... 69
5.2.6. GPIO 使用注意事项 ................................................................................................................................ 72
5.3. NVIC 介绍 ............................................................................................................................... 73
5.3.1. 优先级的设置 ........................................................................................................................................... 73
5.3.2. 中断服务函数的命名 ............................................................................................................................... 76
5.3.3. 中断向量偏移 ........................................................................................................................................... 76
NVIC 使用注意事项 ................................................................................................................................ 78
5.3.4.
5.4.
EXTI 中断介绍 ......................................................................................................................... 79
5.4.1. GD32 EXTI 外设原理简介 ...................................................................................................................... 79
5.4.2. 硬件连接说明 ........................................................................................................................................... 81
5.4.3. 软件配置说明 ........................................................................................................................................... 81
5.5.
TIMER 模块介绍 ...................................................................................................................... 84
TIMER 基础知识...................................................................................................................................... 84
5.5.1.
5.5.2. 硬件连接说明 ........................................................................................................................................... 84
5.5.3. GD32 TIMER 外设原理简介 .................................................................................................................. 84
5.5.4. 软件配置说明 ........................................................................................................................................... 85
TIMER 使用注意事项 .............................................................................................................................. 90
5.5.5.
5.6. ADC 模块介绍 ......................................................................................................................... 91
ADC 基础知识 ......................................................................................................................................... 91
5.6.1.
5.6.2. GD32 ADC 外设原理 .............................................................................................................................. 91
5.6.3. 硬件连接说明 ........................................................................................................................................... 92
5.6.4. 软件配置说明 ........................................................................................................................................... 93
ADC 使用注意事项.................................................................................................................................. 96
5.6.5.
5.7.
I2C 模块介绍 ........................................................................................................................... 97
I2C 基础知识 ............................................................................................................................................ 97
5.7.1.
5.7.2. GD32 I2C 外设原理简介 ........................................................................................................................ 99
5.7.3. 硬件连接说明 ......................................................................................................................................... 100
5.7.4. 软件配置说明 ......................................................................................................................................... 101
I2C 使用注意事项 .................................................................................................................................. 110
5.7.5.
5.8.
SPI 模块介绍 ......................................................................................................................... 111
SPI 基础知识 ......................................................................................................................................... 111
5.8.1.
5.8.2. GD32 SPI 外设原理简介 ...................................................................................................................... 113
2 / 220
GD32 系列微控制器入门开发指南
5.8.3. 硬件连接说明 ......................................................................................................................................... 115
5.8.4. 软件配置说明 ......................................................................................................................................... 115
SPI 使用注意事项.................................................................................................................................. 118
5.8.5.
5.9.
FWDG 模块介绍 .................................................................................................................... 119
FWDG 简介 ............................................................................................................................................ 119
5.9.1.
5.9.2. GD32 FWDG 外设原理简介 ................................................................................................................ 119
5.9.3. 硬件连接说明 ......................................................................................................................................... 120
5.9.4. 软件配置说明 ......................................................................................................................................... 120
FWDG 使用注意事项 ............................................................................................................................ 124
5.9.5.
5.10.
USART 模块介绍 ................................................................................................................ 125
5.10.1. USART 基础知识 .................................................................................................................................. 125
5.10.2. GD32 USART 外设原理简介 ............................................................................................................... 128
5.10.3. 硬件连接说明 ......................................................................................................................................... 131
5.10.4. 软件配置说明 ......................................................................................................................................... 132
5.10.5. USART 使用注意事项........................................................................................................................... 135
5.11.
PMU 模块介绍 .................................................................................................................. 136
5.11.1. PMU 简介 ............................................................................................................................................... 136
5.11.2. PMU 功能 ............................................................................................................................................... 136
5.11.3. 硬件注意事项 ......................................................................................................................................... 138
5.11.4. 软件配置说明 ......................................................................................................................................... 139
5.11.5. PMU 使用注意事项 ............................................................................................................................... 140
5.12.
FMC 模块介绍 ................................................................................................................... 141
5.12.1. FMC 基础知识: ................................................................................................................................... 141
5.12.2. FMC 功能 ............................................................................................................................................... 141
5.12.3. 软件配置说明 ......................................................................................................................................... 146
5.12.4. FMC 使用注意事项 ............................................................................................................................... 147
5.13.
DAC 模块介绍 .................................................................................................................... 148
5.13.1. GD32 DAC 外设原理简介 .................................................................................................................... 148
5.13.2. 软件配置说明 ......................................................................................................................................... 150
5.13.3. DAC 使用注意事项................................................................................................................................ 153
5.14.
RTC 模块介绍 .................................................................................................................... 154
5.14.1. GD32 RTC 外设简介 ............................................................................................................................ 154
5.14.2. GD32 RTC 硬件设计 ............................................................................................................................ 159
5.14.3. GD32 RTC 软件配置 ............................................................................................................................ 160
5.14.4. RTC 使用注意事项 ................................................................................................................................ 167
5.15.
CAN 模块介绍 ................................................................................................................... 168
5.15.1. CAN 基础知识 ....................................................................................................................................... 168
5.15.2. GD32 CAN 外设原理简介 .................................................................................................................... 178
5.15.3. 硬件连接说明 ......................................................................................................................................... 183
5.15.4. 软件配置说明 ......................................................................................................................................... 184
5.15.5. CAN 使用注意事项................................................................................................................................ 190
6.
7.
GD32 MCU FPU 使用方法 ......................................................................................... 191
GD32 MCU 选项字节设置及解除方法 ........................................................................ 194
7.1. 各系列选项字节说明 ............................................................................................................ 194
7.2. 通过代码实现 ....................................................................................................................... 196
7.3. 通过 JTAG/SWD 接口实现 ..................................................................................................... 196
3 / 220
GD32 系列微控制器入门开发指南
7.3.1. 使用 Jlink 设置和解除选项字节 ........................................................................................................... 196
7.3.2. 使用 GDlink 设置和解除选项字节: ...................................................................................................... 200
7.4. 通过 ISP 命令选项字节设置和解除 ....................................................................................... 202
8. 分散加载说明............................................................................................................... 206
8.1. Keil IDE example .................................................................................................................... 206
8.1.1. 将函数放置某个地址 ............................................................................................................................. 206
8.1.2. 将常量放置某个地址 ............................................................................................................................. 208
8.1.3. 将函数放置 RAM 中运行 ...................................................................................................................... 208
8.1.4. 将程序中所有 const 快速放置在 data 区域 ........................................................................................ 209
8.2.
IAR IDE example .................................................................................................................... 212
8.2.1. 将函数放置某个地址 ............................................................................................................................. 212
8.2.2. 将常量放置某个地址 ............................................................................................................................. 215
8.2.3. 将函数放在 RAM 中运行 ...................................................................................................................... 215
8.2.4. 将程序中的 const data 快速的放置到某个区域 ................................................................................. 217
8. 版本历史 ...................................................................................................................... 219
4 / 220
GD32 系列微控制器入门开发指南
1.
GD32 MCU 开发资料下载
本章介绍GD32 MCU开发资料下载方式,读者可通过以下途径下载。
1.1.
官网下载
具体官网下载链接如下:http://gd32mcu.21ic.com/documents/,打开官网资料下载界面如图
1-1 GD32 MCU资料下载官网截图所示。在中文界面下下载资料需要进行简单的注册和登陆后下
载,在英文界面下下载资料无需注册和登陆。
图 1-1 GD32 MCU 资料下载官网截图
1.2.
网盘下载
具体共享网盘链接如下:https://pan.baidu.com/s/1mhQsNpu,该共享网盘包含GD32 MCU开
发所需的用户手册、数据手册、固件库及相关工具等资料,读者可根据分类自主下载,具体资料
介绍如表 1-1 GD32共享文件夹资料介绍所示。
表 1-1 GD32 共享文件夹资料介绍
原理图与封装库
GD32 全系列产品封装库文件(AD 版本)
Keil5 缺少的文件
Keil 版本导致,工程编译提示缺少内核文件时使用
GD32 共享文件夹资料介绍
应用经验
固件库
选型手册
开发板
Application Note
SDK 函数库,软件例程源码及相关固件库使用指南
GD32 全系列产品选型手册
开发板硬件设计参考原理图、PCB 参考设计、软件例程源码与相关指导文档
5 / 220
GD32 系列微控制器入门开发指南
软件
开发环境相关补丁、驱动、工具软件(包含 MDK 选型插件、IAR 选型插件、GDlink 上位机、
ISP 工具、DFU 工具、USB 虚拟串口驱动等)
数据手册&编程手册
Datasheet 以及编程手册
6 / 220
GD32 系列微控制器入门开发指南
2.
GD32 MCU 开发环境搭建
GD32系列为通用型MCU,所以开发环境也可以使用通用型的IDE,目前使用较多的是KEIL,IAR、
GCC和Eclipse,客户可以根据个人喜好来选择相应的开发环境。
2.1.
使用 Keil 开发 GD32
目前市面通用的MDK for ARM版本有Keil 4和Keil 5:使用Keil 4建议安装4.74及以上;使用Keil 5
建议安装5.20以上版本(注意:GD32E23x系列必须使用Keil5开发)。
2.1.1.
在 Keil4 中添加 GD32 MCU Device
1. 从GD32官网下载相关系列插件。
下面以 GD32F30x 为例,在官网上下载 MDK-ARM_AddOn_GD32F30x_V1.0.0.rar,如图 2-1
GD32F30x 系列 MCU 型号支持pack 包名称(keil4)所示。
图 2-1 GD32F30x 系列 MCU 型号支持 pack 包名称(keil4)
2. 双击解压安装至Keil 4的目录,一般都会默认选择,如若同时安装了Keil 4和Keil 5才需要手动
选择。
图 2-2 Pack 包安装示意图(keil4)
3. 安装成功后,重新打开Keil 4,则可以在File->Device Database中出现Gigadevice的下拉选项,
点击可以查看到相应的型号。
7 / 220