GD32创建keil工程步骤(保姆级教学)

前言

本文主要是分享一下自己使用GD32单片机时创建keil工程的流程,这个过程遇到了一些坑,记录下来可以提醒自己,同时也希望能给看到这篇文章的人一些帮助。本人能力有限,如果文章中有错漏的地方还请在评论区留言,我看到并核实后会进行修改,避免文章误人子弟。

准备材料

一台可以正常使用的电脑,电脑里面装有keil5这个软件,如果不会安装或者没有安装包,请看这篇文章:Keil5的安装与注册_keil注册机-CSDN博客。我的keil版本是5.38.0.0

一、创建文件夹

不管是做什么项目,我们都应该给这个项目创建一个单独的文件夹,方便以后管理。这里我在E盘创建了一个名为GD32keilproj_study文件夹,名字不一定要和我一样,大家随意取就好。然后再到这个文件夹下创建一个名为keilproj文件夹,用来存放keil工程,为什么要创建一个子目录呢,主要是因为keil工程创建时会自己添加一些文件。如果我们在第一级目录下创建keil工程,后面管理项目的时候就会显得比较乱。

二、创建keil工程

1、打开keil5

2、点击Project

3、点击新的工程文件

4、给这个工程文件取个名,然后点击保存

5、选择芯片

这个要根据你用的芯片来选择,我用的是GD32F303CCT6。点击对应芯片后右边会有这款芯片的描述,我们主要看它支持的最高频率即可,因为后面要配置时钟。选好以后点击ok。

6、点ok就行

这里是一些库和运行环境的配置,我们是新建的工程,所以不用管直接点击ok即可

三、添加文件

1、点击品字形的这个按钮

2、管理项目的目标、分组和文件。

一般我们的目标会改成我们的项目名称,分组其实不分也没什么影响,但是为了方便管理我们还是按文件的作用将其分类。

3、下载固件库

 这个步骤主要是针对没有固件库的同学,如过已经有对应的固件库了可以跳过此步骤,对应芯片的固件库可以从兆易官网上下载兆易创新GigaDevice-资料下载兆易创新GD32 MCU。点击刚才的链接进去是以下界面:

在搜索框里面输入芯片的型号(不要输完整芯片型号,因为固件库不会细化到某一款产品,只会细化到某一类,或者说某一个分支。该分支下的每一款芯片都可以用同一个固件库),这里我们输入GD32F30进行搜索可以得到以下的结果:

这个固件库就是我们需要的东西,当然了上面的数据手册和用户手册我们也是用得上的,也可以顺便下载下来。

下面就是我们下载下来的固件库压缩包:

解压一下:

解压以后我们发现有五个文件夹,从文件夹的命名就可以大致猜出来里面有什么内容, 不过还是简单说一下。Doc目录下是一些文档,里面是固件库使用指南。Examples下是一些外设的的使用例程,我们以后如果用到相应的外设可以去这个文件夹下面查询,一般写代码都要去参考这些文件。Firmware就是芯片的固件库了,里面的所有文件都要添加到我们的工程(虽然有些可能暂时用不上,但建议全部加进去)。Template目录下是兆易官方提供的一个keil工程模板,我们可以用来做参考。Utilities里面是第三方库和一些驱动。

4、添加文件

(1)分组

我按照自己的习惯添加了一些分组(仅供参考):application是我们的应用程序,system是必要的系统文件,startup是启动文件,firmware是固件库,Utilities是第三方库。

(2)把解压后的一些文件复制到项目的文件夹下面

不是所有的文件都要复制到我们的项目目录下,只要复制这三个即可。为什么要复制而不直接使用这个目录下的文件?第一,既然是一个项目,就应该放到项目所在的目录去进行开发管理,第二,后面的开发可能会根据需求修改这些文件的内容,如果修改了某些内容导致程序无法运行,我们也可以参考原始文件做调整。

复制文件到我们的项目目录:

进入Template目录:

删掉上面红框内两个官方给的工程模板,因为我们是自己创建的,这两个文件夹里面的东西没有用。除了这两个文件夹里面的东西,下面的.c和.h文件都是我们要用到的,至于readme大家有兴趣可以读一下,里面就是讲了这个工程模板实现了什么效果等等。

既然都到这个目录下了,浅聊一下这个目录下的这些.c和.h文件有什么用。

gd32f30x_it是存放中断处理函数的,中断是什么就不解释了。

gd32f30x_libopt.h这个文件包含了所有固件库的头文件(嗯,有点万能头的味道)。

main就不解释了,懂的都懂。

systick里面是配置系统滴答定时器的,曾经我以为这个文件里面的接口是用来配置系统时钟的,因为几乎每个例程里面main函数的开始都会调用systick文件里面的systick_config()这个接口,而且不调用这个接口程序容易卡住。后来才发现不调这个接口程序也能正常运行,只是不能用它里面提供的延时函数。在不配置系统滴答定时器的情况下,一调用延时函数就会卡死,卡死的原理大家可以去看看延时函数的实现。

虽然这个目录下的所有文件都可以自己写,但没必要自己写嗷。

好像闲话有点多了。。。。。。。。

(3)分别在每个组把文件添加到工程里面来

首先选中第一个组,然后点击添加文件:

点击Add Files以后我们发现进去的目录是我们创建工程模板的目录,这个目录并没有我们想添加的.c文件,所以我们回到上一级目录:

进入Template,我们会看到三个.c文件,全部添加,然后点击close关闭

点击close以后就会发现我们的第一个组有了三个文件,接着再往第二个组添加文件:

添加这个路径\Firmware\CMSIS\GD\GD32F30x\Source的system_gd32f30x.c这个文件到system这个组,然后点击关闭。然后再选中第三个组,添加文件。

添加这个路径\Firmware\CMSIS\GD\GD32F30x\Source\ARM的startup_gd32f30x_hd.s文件到startup这个组里面,需要注意的是,这个目录下有三个文件,我们需要根据自己的芯片来选择要添加的文件,cl是flash小于256K的, hd是flash在256-512K之间的,xd是512k以上的。我的芯片是256K的, 所以选择hd。有人可能到了这个目录发现什么都没有,因为你对文件类型进行了筛选,它默认是.c文件,你要选择all files才能看到。选好后添加,然后关闭。

选中firmware这个组,然后添加固件库的文件进来,路径\Firmware\GD32F30x_standard_peripheral\Source,建议这个目录下的所有文件都添加进来。

选中Utilities这个文件夹,然后把第三方库添加进来,路径\Utilities,只添加红色方框匡住的那个即可,为什么要选择这个呢,主要是因为main.c里面包含了这个头,选了这个就不用修改main.c文件的代码了。

自此,文件添加已经完成,但是要注意点击ok保存当前配置,如果不小心点了取消,之前的操作就白费了。

5、配置魔术棒

点击这个图标

配置target,下面这张图按顺序点就行了,解释一下,第二步是勾选微库,就是c语言的一些基本库,你如果要用到c语言的接口,比如printf什么的,就要勾选这个,否则会有异常发生。至于编译器的版本,有最新的就选最新的,我这上面最新的是V6.19。

配置output,下面的123建议都勾上。解释一下,2必须要勾上的,否则无法生成hex文件,我们最终是要把这个文件烧到我们的单片机里面,1是调试用的,一般打断点单步调试什么的对我们定位问题很有帮助,不勾上这个选项是无法打断点的。3是用来浏览信息的,这个选项可勾可不勾啊,如果你就在这个软件上开发(编写代码),跳转到某个接口的定义比较方便。(PS:一般都不在这上面开发,不管是用VScode写代码还source insight都比这个要方便很多。但是勾上也没有坏处。)

配置c/c++,1和2其实就是选择你语言的编程规范,c语言选c99标准,c++的话选c++11标准。大家要是不知道什么是c语言标准和c++标准可以去搜一下,了解每个版本的差异和新增特性。虽说选的不是最新的,但却是比较经典的版本,支持我们开发是完全足够的。3是警告展示类型,选择AC5这个选项,默认的all warnings会在编译的时候给你展示很多你不知道的warning, 一般都是类型不匹配导致的。4是选择头文件的路径,这个是很重要的,编译的时候会按照这里面罗列的路径去找对应的头文件,如果所有的路径都没有找到你代码里面包含的头文件就会报错。点击4指向的那个框去添加头文件路径。

添加头文件路径,点击1就会出现2,点击2进去寻找头文件的路径。头文件在哪个文件夹下就选则哪个文件夹,记住是选中文件夹,不要像我一开始一样傻乎乎到文件夹里面去。

最后添加好的头文件路径是这样的,选好以后点击ok

配置debug,模拟仿真选左边,硬件仿真选右边。我有实物所以选择右边的use。如果你用的是GD-Link烧写器调试,就按照123的顺序点就行了,如果是其他烧写器需要具体情况具体分析。

配置好以后记得点击ok保存,不然之前的配置就恢复成默认了。

6、修改系统时钟

都配置好以后我们就可以编译了,点击全部编译后我们会发现0 warning 0 error。但是此时如果我们把程序烧到板子里面,会发现跑不起来。

这是为什么呢?我们打开system_gd32f30x.c这个文件,第57行,我们发现代码里面默认配的是120M的外部时钟源,但是我并没有用外部时钟,而是内部时钟源。所以这一行代码要注释掉,把上面120M内部时钟源的宏定义打开(时钟源的配置需要根据自己的情况选择)。

把代码改成这个样子就可以跑起来了

四、总结

以上就是GD32F303CCT6这款芯片keil工程的创建整个过程,其他GD单片机的keil工程也可以参考本文进行配置。本人用这个软件和兆易创新的芯片也没多久,其中如有错漏之处还请文明指出。

  • 54
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值