GD32F103入门实践(一)配置环境,搭建工程模板,烧写程序

写在前面

本系列博客是我初学GD32F103的操作实录,我个人是个小白,在学习过程中真的也遇到了不少坑,因此我希望能记录下来,帮助到同样踩坑的你。
我的芯片是GD32F103ZE,软件是Keil,烧写用的是JLink。

材料准备

首先我在兆易创新官网(兆易创新),下载相关的文件。点击资料下载,在搜索框里输入“GD32F10”可以得到相关的资料,其他芯片类似。比较重要的是GD32F10x AddOn和GD32F10x Firmware Library(固件库),这两个必须下载。
在这里插入图片描述
在这里插入图片描述
下载Keil MDK5,这个可以在网上自己找,我的版本是5.25,来源是公众号【软件安装出版社】,公众号中自带安装教程。网上很多人说这个版本低,但目前我还没有遇到问题。

固件库的使用可以参照GD32F10x固件库指南, 这个指南的开头讲解了刚才下载下来的固件库的文件组织方式,后半段是固件库函数的详解。

开始配置

固件库提供了IAR和Keil两种例程。因为之前一直用IAR,所以这次也先按照固件库指南中的方法来尝试用IAR运行例程。但是遇到了很多问题,在网上也没找到什么办法,所以选择用Keil再战。只看固件库指南对没用过Keil的同学可能还是比较容易漏掉步骤。我参考了一些博客,将我的做法整理如下。
第一步:解压官网下载的资料
解压从兆易创新官网下载的资料
第二步:按图示路径在刚才解压的GD32F10x_AddOn_V2.0.1文件夹中找到.pack软件包在这里插入图片描述
第三步:双击这个.pack文件进行安装。注意安装位置一般会默认是你的Keil安装路径加上子文件夹,不需要自己设定,我的Keil安装在E盘,文件夹是E:\Keil_v5。图中的文件夹要记住,下一步要用。
在这里插入图片描述
在这里插入图片描述

第四步:找到刚才的安装文件夹,把.pack文件复制进去。如果不复制,后面在keil中会出现找不到对应芯片的情况。

第五步:打开keil,点击这个圈出来的图标,打开了Pack Installer,这里我的已经添加上了GigaDevices。如果你的没有,可以点击File->Import,然后选中.pack文件就可以了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

搭建GD32工程模板

下面是搭建GD32工程模板的方法,有了模板后我们可以更方便的使用官方提供的例程或自己编写程序。这里参照的是②搭建GD32工程模板
第一步:创建一个新的工程文件夹以及若干子文件夹。我的工程文件夹命名为standard_project,几个子文件夹命名为App、CMSIS、Startup、StdPeriphLib。

第二步:在App中创建main.c文件,可以新建文本文档,然后将文件类型后缀从.txt改成.c。

第三步:从官方下载的固件库中GD32F10x_Firmware_Library_V2.1.2\Firmware\CMSIS\GD\GD32F10x\Source拷贝system_gd32f10x.c文件到CMSIS中。

第四步:从GD32F10x_Firmware_Library_V2.1.2\Firmware\CMSIS\GD\GD32F10x\Include中拷贝system_gd32f10x.h和gd32f10x.h到CMSIS中。

第五步:将F:GD32F10x_Firmware_Library_V2.1.2\Template中的gd32f10x_libopt.h也拷贝到CMSIS中。

第六步:在CMSIS中创建include文件夹,将GD32F10x_Firmware_Library_V2.1.2\Firmware\CMSIS中的core_cm3.h放入其中。

第七步:拷贝KEIL安装路径中,E:\Keil_v5\ARM\Pack\ARM\CMSIS\4.5.0\CMSIS\Include中的core_cmFunc.h和
core_cmInstr.h文件(其他.h文件其实也可以全拷贝过来),拷贝到工程文件夹的CMSIS\include文件夹中(没有include文件夹的就创建一个)。

第八步:将GD32F10x_Firmware_Library_V2.1.2\Firmware\GD32F10x_standard_peripheral下的两个文件夹均复制到StdPeriphLib文件夹中。

第九步:将GD32F10x_Firmware_Library_V2.1.2\Firmware\CMSIS\GD\GD32F10x\Source\ARM中的文件复制到Startup文件夹下。

第十步:打开KEIl5在刚才所创建工程文件夹中新建工程文件,输入新建的工程名称,点击保存后,弹出选择设备型号。选择你的芯片型号即可,我的是GD32F103ZE。点击确定。

第十一步:接下来弹出了Manage Run-time environment,这里不用配置,直接点cancel取消即可。

第十二步:点击图中圈出来的这个图标来打开文件管理器,然后在group中创建四个文件夹对应的组,并且按下图添加文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意,最后的Startup中添加的四个.s文件,在后面的编译过程中如果报错,比如有什么东西重复定义了,就观察下报错信息,然后选择性的保留一个或者多个.s文件即可。

第十三步:点击圈出来的这个魔术棒图标在这里插入图片描述
在target页中勾选Use MicroLIB
在这里插入图片描述
在C/C++页中点击红圈圈出的地方添加文件夹
在这里插入图片描述
在这里插入图片描述
第十四步:在main.c中添加代码如下。在实际操作中这部分可以换成自己的代码了。

#include "gd32f10x.h"

int main(void)
{
	while(1)
	{
		
	}
}

第十五步:点击编译,应该就可以成功了。在这里插入图片描述

烧写程序

使用的是JLink,如果用的是JLink V8,很可能会遇到无法正常烧写的问题,参考
Jlink V8 在 Keil MDK5.25 中无法正常烧写、调试程序的故障处理
解决方法主要为,用JLink驱动安装文件夹中的Jlink.exe , JLinkARM.dll 两个文件,替换掉Keil MDK5安装文件夹下的SEGGER文件夹中的Jlink.exe , JLinkARM.dll 。注意这个方法JLink的版本要足够高,比如6.12的不行,6.20及以上的都可以。我的是6.84。
在这里插入图片描述

点击这个图标就可以烧程序了。

版权声明:本文为CSDN博主「红衰绿老」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41208487/article/details/113866915

生成海报
点赞 0

红衰绿老

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

GD32精确延时和时间戳

目前网上很多都是利用systick频繁产生中断进行计数,然后实现延时。我写的这写接口,systick产生中断的频率很低,cpu效率很高。而且同时实现了毫秒延时,微秒延时,以及

GD32串口通信注意事项

GD32串口通信 虽说GD32与stm32采用同样的ARM® Cortex®-M3内核,而且GD32很大程度上可兼容stm32的程序,但是也存在着一些差异;所以为了使用上减少出错,使用G

GD32 SPI问题

GD SPI波形,在使用过程中会写入只是写入寄存器,如果这是立马取消片选,则会错误 ST SPI波形 GD改善后,添加新的判断 void spi_write_byte(uint32_t

GD32F205在IAR上移植FreeRTOS

简述: 1、主芯片:GD32F205VET6 2、编译器:IAR V8.40.1 3、系统:FreeRTOS V9.0 第一步:准备最简工程与系统 1、准备一个GD32