【GD32教程】如何在KEIL中新建工程

以GD32f103C8T6芯片为例。

一、下载MDK5 软件包

下载地址:https://www.keil.com/dd2/pack/

1.选择工程所需的软件包。

2.打开软件包,安装在KEIL5同路径下

3.安装成功后打开keil软件,可查看到自己下载的软件包。

二、GD32资料下载

GD32的相关资料可直接到GD32官网下载。

下载地址:兆易创新 (gd32mcu.com)

1.点击资料下载->软件下载

2.在搜索栏直接搜索GD32F10x

3.解压文件

Docs文件夹中包含有固件库的使用指南。

Firmware文件夹中包含GD32F10x芯片的驱动文件以及固件库文件等相关文件。

三、新建工程

工程的建立可根据自己的习惯,选择合适的工程模板,当然将所有文件放在一个文件夹中也是可以的,只是不美观、不方便管理。

1.创建工程模板

在自己新建工程是少使用中文,尽量多使用英文。

常规的工程模板为:

(1)CMSIS: 存放内核驱动程序和启动引导文件

(2)FWLIB:存放库函数文件

(3)Project:存放工程文件

(4)User: 存放用户程序(主函数)

(5)APP:存放用户程序(相关外设驱动)

2.向模板中导入相关文件

· 向CMSIS目录中导入内核驱动及相关文件

可将Fimware->CMSIS中的所有文件都复制到自己的工程模板的CMSIS目录

· 向FWLIB目录中导入固件库文件(标准库)

可将Fimware->GD32F10x_standard_peripheral目录中的所有文件复制到工程的FWLIB目录

· 新建文件

User目录下可直接新建main.c文件,也可在keil软件中新建文件。APP目录下的文件也是如此。

新建文本文档,将其重命名为main,扩展名改为c文件。

3.添加项目

· 打开KEIL5,点击Project->New uVision Projecr…

选择文件路径,添加工程名(英文),可根据自己项目填写合适的文件名,点击保存。

· 选择芯片型号

此处笔者选择的型号为GD32F103C8

此时空旷的界面就开始多了一些东西。

· 添加文件

添加分组:

方法1:

点击Target 1,右键选择Add Group…

重命名:点击需要重命名的分组,长按左键。

方法2:

可点击品字形的小方块,依次添加分组。

添加文件:

CMSIS:

在工程CMSIS目录中依次添加以下文件:

core_cm3.h #内核相关文件

system_gd32f10x.c #gd32的时钟配置

system_gd32f10x.h

gd32f10x.h #实现了片上外设的所有寄存器的映射

startup_gd32f10x_md.s #启动文件 该文件需要根据芯片闪存大小选择

跳转到工程CMSIS目录下找到上述文件并添加到工程。

所有文件添加完成。点击ok

FWLIB:

GD32F10x_standard_peripheral 文件夹下有include和source两个文件夹,这里属于CMSIS以外的、芯片片上外设部分。

sousce:gd32每个外设的驱动源程序

include:外设头文件

添加固件库文件(标准库)时,此处直接将所有外设的.c文件添加到工程中即可。使用快捷键Ctrl+A可直接选择所有文件。

添加流程与上↑相同。

main.c以及后续新建的外设驱动文件也是如此添加,所有文件添加好之后点击ok.

添加路劲

添加所有.h文件所在的路径。

点击魔法棒

依次添加所有.h所在的目录(具体到所在的那一级目录),可将软件缩放,在一侧打开工程目录,以便观察所有的.h文件。

全部添加完成点击OK进行保存,此后新建的头文件,若不在这些路径下,也需要包含对应的路径。

相关配置

选择Use default compiler version 5,点击ok保存。

4.编译工程

此时发现添加的文件多了+号,表示我们的文件以及头文件路径添加起了作用,但还有24个错误。

随机点一个,发现RTE_Components.h文件找不到。这个报错的地方在gd32f10x_libopt.h中。

查看了添加的所有文件中,好像是没有这个文件。

此时官方提供的模板就很重要,也许可以帮助到我们。果不其然,在模板文件中有gd32f10x_libopt.h文件,此时只需要将它加入到工程中,看看能不能解决问题。

笔者将其复制到模板的CMSIS目录下,而工程中也包含了改路径,可不用为其添加路径。也可根据自己的习惯,放在其他目录下,只要包含其路径即可。

再次编译。

还有一处错误,RTE_Components.h文件找不到的错误已经解决,说明咱们做的判断是正确的。

注:gd32f10x_libopt.h文件中包含所有的外设源程序头文件。

而此处错误是没有main函数,毕竟一切从main函数开始,那就添加一个main函数试试。

此时就没有错误和警告了,切记,在一个文件中,最后必须空一行,否则会报警告,但不影响整个程序。

好了,开始编程之旅吧。

2023/01/09

四、后续Error(更新中…)

1.启动文件添加错误

部分友友按照上述流程操作,还会报6个错误,在网上查找解决办法,一时间也没找到。

这个错误其实很好解决。

startup_gd32f10x_md.s启动文件在ARM、IAR两个目录下都有,名字还一样,在工程中添加了IAR下的启动文件,就会报上述的错误。

×掉原来的startup_gd32f10x_md.s,在添加ARM目录下的startup_gd32f10x_md.s,问题就能解决。

2.宏定义

用过STM32F10x的小伙伴门都知道需要手动定义宏:STM32F10X_HD 和USE_STDPERIPH_DRIVER,细心的小伙伴就会发现文章中并没有写到两个宏的定义。

对于STM32而言,

STM32F10X_HD宏:是为了告诉STM32标准库我们使用的是STM32大容量型芯片,使 STM32 标准库根据我们选定的芯片型号来配置。但在选择芯片时,便会自动根据所选的芯片判断到芯片型号。

USE_STDPERIPH_DRIVER宏:则是为了让stm32f10x.h包含stm32f10x_conf.h 头文件。

注:stm32f10x_conf.h 中包含STM32F10x所有外设源程序头文件。

而GD32F10x的gd32f10x.h文件较STM32就显得有些简单(代码量)。也不需要额外定义USE_STDPERIPH_DRIVER宏。

物联沃分享整理
物联沃-IOTWORD物联网 » 【GD32教程】如何在KEIL中新建工程

发表评论