之前做学习或者做项目一直用的STM32系列的单片机,最近看着STM32单片的价格暴涨,对于我这个“穷苦”老百姓来说,买不起啊、买不起啊、买不起啊。既然给自己“定性”了,那就要“另辟蹊径”啊,总不能老是在同一棵树上挂着啊。另外,看到各种芯片被“漂亮国”制裁,我一腔爱国之心立马熊熊燃烧了起来,当即决定,老外的芯片不用了,找找咱“自己家”的芯片。又考虑到尽量降低学习开发成本,找来找去找到了兆易创新这家。据说,STM32的代码简单改一下就能在对应的芯片上运行起来。这么好的事,不得玩玩啊。

说干就干,学习单片机第一步,那必须得买块开发板啊。又一通找,找到了兆易创新自家的GD32103E-EVAL全功能开发板(还发现了一款GD32VF103的开发板,使用的是RISC-V内核,对这个也很感兴趣,也一块买了,后面再研究),上面的单片机型号是GD32F103ZET6,考虑到这款单片机的外设资源相对来说比较丰富,所以最终选择了它。这家伙是这样的:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(1)

GD32103E-EVAL开发板

有了开发板,那就要进行相应的学习了,后续相关的文章将记录我的学习过程。那么第一步先来验证一下开发板吧,这时候才发现这货除了在官网上有个对应的官方固件库和例程,没有其他资料(也可能是我没发现,也懒得找了,就从这下手吧)。无妨,那就先下载这个官方例程来整整。从这里下载:

http://gd32mcu.com/download/down/document_id/182/path_type/1

下载后解压,里面是这个样子的:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(2)

GD32F10x固件库及例程

简单来说说里面的每个目录都是用来干啥的:

目录

功能

GD32F10x_AddOn

GD32F10x系列单片机相关的插件,包括IAR和Keil的芯片支持包

GD32F10x_Firmware_Library

GD32F10x系列单片机固件库,类似STM32固件库V3.5.0

GD32103C_EVAL_Demo_Suites

GD32103C-EVAL开发板对应的开发文档、例程等

GD32103E_EVAL_Demo_Suites

GD32103E-EVAL开发板对应的开发文档、例程等

GD32107C_EVAL_Demo_Suites

GD32107C-EVAL开发板对应的开发文档、例程等

搞明白了固件库的目录结构,那就找个例程测试一下板子吧。由于用的是GD32103E-EVAL开发板,因此打开GD32103E_EVAL_Demo_Suites目录,是这么个样式的:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(3)

GD32103E_EVAL_Demo_Suites

Docs目录中包含开发板的原理图和用户指南;Projects目录中包含各种外设例程,有小灯闪烁啊、按键啊、串口输出啊等等,我将会在这个里面拿出一个最简单的小灯闪烁的例程来对开发板做一个简单的验证;Utilities目录中包含开发板自带的LCD的驱动程序及第三方的文件系统相关的代码,如果后续做这方面的开也可以将这部分进行移植。

这样固件库的大体目录结构就知道得差不多了,下一步找到对应开发板例程中的小灯闪烁的例程对开发板进行个简单的验证。

当然要先安装相应的IDE,我这里安装的是Keil v5,具体的安装及“你懂的”特殊处理步骤这里就不多说了,网络上资源很多。装好Keil之后,为了让Keil可以支持GD32F103系列的单片机,首先要先安装对应的芯片支持包。

打开Keil后如下图所示:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(4)

Keil界面

点击红框中的Pack Installer后弹出相应的窗口:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(5)

Pack Installer

因为Keil的芯片支持包下载的服务器在国外,所以打开后网络更新速度很慢,这样一直在更新的话,无法显示手动安装芯片支持包的进度,因此首先把左上角菜单栏Packs中的启动更新的选项去掉:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(6)

去掉启动更新的选项

然后关闭将Pack Installer关闭后重新打开,这个时候会发现下面的更新提示不再提示更新了:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(7)

不再提示更新

如果安装其他芯片的支持包,推荐去Keil的网站先下载下来后再手动安装,下载地址为:

https://www.keil.com/dd2/pack/

继续,点击左上角菜单栏File中的导入,在打开的对话框中找到Keil v5对应的芯片支持包打开即可:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(8)

导入

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(9)

选择文件

等待安装完成后将Pack Installer窗口关闭:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(10)

安装完成

此时提示软件包有改动,点击是即可:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(11)

提示软件包变动

随后点击Keil菜单Project→Open Project...,在打开的对话框中找到要用的小灯闪烁的例程工程文件,点击打开:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(12)

打开工程

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(13)

选择工程文件

打开工程后有如下提示,是因为固件库中的工程是Keil v4版本的,用Keil v5软件打开会有这样的提示:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(14)

提示未找到芯片型号

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(15)

提示设备不支持

因此需要先将该工程转换为Keil v5工程,Project→Manage→Migrate to Version 5 Format...:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(16)

转换工程

转换完成后有如下提示,点击确定即可:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(17)

转换完成

这时会发现左边的工程显示框中多出了一个CMSIS,这是Cortex-M内核软件接口标准,是Keil v5软件提供给工程使用的,也可以自行添加,要想让工程使用Keil提供的CMSIS库,还需对工程进行设置:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(18)

CMSIS

按照下图所示进行操作,将..\..\..\..\GD32F10x_Firmware_Library\CMSIS这一行删掉,如果不删掉这行,工程会默认使用固件库中的core_cm3.h,编译时会出现很多错误,导致编译无法通过:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(19)

删掉工程CMSIS目录

设置完成后即可点击重新编译对工程进行编译了:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(20)

编译工程

下面的编译输出中有相应信息输出,如果编译完成显示错误0警告0,则代表编译没有错误:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(21)

编译结果

编译完成后就要烧录到开发板中查看现象了,首先将开发板自带的USB线的Micro口插在开发板的GD-Link USB口上,另一端插在电脑USB口上,开发板自带的GD-Link使用的是CMSIS-DAP调试器,在电脑端不需要安装驱动,但需要在烧录之前对工程进行相应设置:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(22)

修改调试器

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(23)

选中Reset and Run

最后点击左上角的烧录按钮即可进行程序的烧录,同时下面的提示框中输出提示信息:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(24)

烧录程序

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(25)

烧录过程提示

烧录完成后开发板上的四个小灯会出现流水灯的效果,说明程序烧录成功:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(26)

例程演示

最后,贴上小灯闪烁的核心代码,首先对四个小灯进行初始化,然后配置系统滴答,实现ms级别的延时,随后while循环中依次打开每个小灯并延时,实现最终的流水灯效果:

gd32开发板教程(GD32F103单片机学习笔记之GD32103E-EVAL开发板入门)(27)

流水灯核心代码

到此为止,算是对开发板做了个小小的入门了,那这次的学习就到这里吧。

,