【国产单片机开坑GD32系列,带你零死角玩GD32】
第二章 GD32开发环境建设,获取常用数据,点亮LED!
目录
- 【国产单片机开坑GD32系列,带你零死角玩GD32】
-
- 第二章 GD32开发环境建设,获取常用数据,点亮LED!
- (一)前言
- (二)GD获取32相关资料
- (三)GD建设开发环境
- (四)GD建造32个工程模板
-
- 第一步 解压下载的GD32F10x_Firmware_Library文件
- 第二步 建立GD32F10xxxx工程模板
- (五)编译
- 结语
(一)前言
第一章 GD32基本资料介绍对兆易创新的初步描述GD32系列MCU基本特征,但仅仅理解总是不够的,所以本章将解释Keil如何在平台上进行GD32开发环境的建设,工程模板的创建,以及获取一些必要技术资料的方法(假期反向钓鱼属于)!(梦想开始的地方!
(二)GD获取32相关资料
当我接触到一个新的MCU第一反应是去那里MCU的官网,试图寻找到这款MCU数据手册、用户手册、相应的固件库,让我不用从零开始敲代码。 对于GD32也是如此。当我们把它握在手掌上时,我们想到的是:
- GD32的引脚是如何排列的?是否有最小系统原理图可供参考?
- 如何查阅?GD32各功能的具体信息和详细说明?
- 在Keil上,如何开发?GD32有库吗?这个库怎么用?
- 如何构建一个GD32工程模板?
例如,上述问题测试了您对搜索引擎使用的熟悉程度。你知道,百度也很熟练。有些人百度一个小时,甚至没有看到数据的影子。有些人百度可以在5分钟内找到健康的学习材料。为了方便大家找到GD32相关资料,我已经把了GD32整理好常用资料,放在下面的链接中与大家分享:
-
GD32系列数据手册,数据手册会IC简单介绍内存容量、运行主频、携带外设等参数的基本情况,但不会详细介绍。详细介绍将包含在用户手册中。以下是数据手册的下载链接: (链接:https://pan.baidu.com/s/17XAI9GyP4c7yy7k44kRMbQ) 提取码:emm4
-
GD32系列芯片包,是的GD为32开发重要工具Keil例如,简单地说,芯片包决定了您在创建项目时是否能找到相应的项目GD32型号,以下是GD32系列大部分型号的芯片包下载链接: (链接:https://pan.baidu.com/s/1l4qgmI7EkxE76lkThbgrQw) 提取码:9yqc
-
GD32系列官方例程包括GD32各外设的示例代码,以及GD32固件库提供了一系列完整的固件库API,减少用户的开发难度,避免用户陷入操作寄存器的悲惨境地: (链接:https://pan.baidu.com/s/1o19-i4OEL5BVHEjt-hjKnA) 提取码:0y4l
-
GD32系列用户手册32系列用户手册GD如果您想查询硬件,请查询各功能部件的信息和使用方法SPI配置寄存器,或者想知道GD检查用户手册中32小时系统的组成: (链接:https://pan.baidu.com/s/19svrZiPR-LAHxPcoeLnMgg) 提取码:1sld
-
GD32系列应用笔记是项目中可能遇到的一些问题的官方解决方案,如总线死锁或GD32数字滤波方法等,有一定的参考价值,可以看一看: (链接:https://pan.baidu.com/s/1qMNwEbS1GbUmsvPvD6Bf2A) 提取码:wjyi
另外,因为这里的信息不是GD32官网所有信息,如果在上述链接中找不到所需信息,可以进入以下官网或私信我,我会尽快回复! GD32官网链接.
(三)GD建设开发环境
搭建GD开发环境,首先要有以下两种工具:
- Keil5.版本不重要,只要是Keil5就行。
- 对应GD上面已经给出了32型芯片包,用于安装GD32芯片支持包。
好的,我默认看到这里的靓仔已经下载了上述工具,然后,开始配置环境!
第一步 芯片包解压下载
我在这里下载的是GD32F4系列芯片包,其他系列操作相同,解压,将获得以下文件:
第一份文件,是的GD32在Keil4下的环境补丁(支持 Keil v4.7x),也就是芯片包,但有时是下载的 .ex_ 此时将后缀改为后缀 .exe 可以,第二个文件是GD32在Keil5下环境补丁(支持) Keil v5.27 及以上版本),第三个是IAR使用下环境补丁IAR这就是美仔用的。
第二步 安装解压芯片包
双击要安装的芯片包,如果没有意外,以下界面将弹出:
因为我以前已经成功安装了,所以会有安装提示,后续是不断点next就阔以了。
第三步 验证安装效果
只要打开Keil4或Keil5.如果以下界面,则表示芯片包安装成功:
如果安装不成功,可以检查以下内容是否Keil如果还是解决不了,可以在评论区打电话给我!
(四)GD建造32个工程模板
芯片包安装完成后,如果不建立可靠的工程模板,怎么能放弃?因此,下一步是建立工程模板。说实话,GD32工程模板,我按照STM建立32个工程模板的样式无非是包含以下文件:
- 汇编启动文件;
- 各个外设的 .c 和 .h 驱动文件;
- 相关内核驱动文件,如 xxcm4.c等文件;
- 系统时钟配置文件;
- 主函数和用户驱动文件;
如果你只是想得到一个工程模板,暂时不想自己建立工程模板,我也为你准备了下载链接,太亲密了!(但只有GD32F10xx是的!以后我会上传其他型号的工程模板,所以没事多进来看看。(暗示) (链接:https://pan.baidu.com/s/1KPGBCewAP-gml_BWQbZ7xQ 提取码:9xfy
敲黑板!敲黑板!想了解更多关于工程模板施工方法的漂亮男孩,让我们来看看。GD32F10xxxx分析工程模板,但前提是你手头已经有了GD32F10xxxx官方例程,不要去上面的链接下载!
第一步 解压下载的GD32F10x_Firmware_Library文件
解压后,会获得以下文件:
显然,凭你的直觉,你一定能猜到有很多文件暂时不用,事实也是如此!
- 第一个文件夹:examples 文件夹中包含的所有内容都是外设示例驱动代码。请注意,只是 .c 和 .h没有工程的文件,就像下图一样
因此,当我们构建工程模板时,我们暂时不能使用它。当我们开始解释每个外设时,它和用户手册是我们最重要的参考!
- 第二个文件夹:Firmware 该文件非常关键,包含以下内容
文件2,3,4,即core_cm3.h,core_cmFunc.h及 core_cmInstr.h , core_cmFunc.h是不同编译器下的一些系统级的汇编函数,core_cmInstr.h是不同编译器下的指令,Keil公司这样做是为了兼容不同的编译器。 这两个头文件在core_cm3.h头文件里是可以注释掉的,即这两个文件不是必须的,而文件夹1中包含的就是我们工程模板搭建的核心,包含了系统头文件,启动文件,以及会在主函数执行之前进行系统设置的系统初始化文件,主要包含以下几个文件夹
文件夹1存储的是系统头文件gd32f10x.h ,和系统初始化文件system_gd32f10x.h 。
文件夹2,即Include存储的是启动文件,以及系统初始化源文件 system_gd32f10x.c ,但是打开启动所在的文件夹时,有些彦祖就会有疑问,为什么启动文件有这么多?
我们发现,每一个启动文件的文件名的最后几个字符,是有区别的,有cl的,有md的,为啥会有这么多呢?
其实这些启动文件是和不同容量,不同型号的MCU相对应的,GD32F10x系列有MD(中容量) ,HD(大容量),XD(超大容量), CL(互联型) 等系列,不同的型号在外设资源和内部寄存器结构上有一定的差异,所以在使用官方的固件库(Firmware)时也要作相应的选择和定义:
- 中密度产品:闪存存储器容量16K到128K字节之间的产品;
- 高密度产品:闪存存储器容量256K到512K字节之间的产品;
- 超高密度产品:闪存存储器容量大于512K字节的产品;
彦祖们在使用不同型号的MCU时,对号入座就可以了,讲完了CMSIS文件夹下的内容,我们继续讲它边上的GD32F10x_standard_peripheral文件夹,这里面存放就是各个外设的官方驱动程序了,比如GPIO的设置和读写程序,DAC的初始化和传输设置程序,都搁里面了,待后续开始讲解各个外设时,同样是我们重要的参考资料!
- 第四个文件夹:Utilities 这里面就是一些第三方组件,比如FAT_FS文件系统啥的,以及一些与开发板配套的源文件,我们暂时也不用管他。
第二步 建立GD32F10xxxx工程模板
在第一步里面,已经给彦祖们详细介绍了各个文件夹的组成及内容,接下来就是在Keil当中建立工程模板的时候了!
- Step1:创建工程文件夹 建立一个如下图所示的文件夹
- Step2:往上述文件夹中填充文件 第一个Docs文件夹,一般存放的是一个TXT文件,用于记录开发过程中的细节,思路和问题,不过我一般喜欢用Word文档来记录,花样还多! 第二个是HardWare文件夹,里面存放的就是一些自定义的文件,比如驱动OLED的文件,驱动液晶屏幕的文件等等,视具体需求而定了。 第三个是Libraries文件夹,里面存放的,是GD32自有库各个外设的驱动库函数,彦祖们可以下载我在上面提供的模板工程,对照着操作,也没必要一直自己蒙头造车轮嘛。
第四,五个文件夹是程序编译时的链接和输出文件,后面会在Keil中设置。 第六个文件夹就是存放我们在Keil中建立的工程文件了。 第七个文件夹存放的是main.c文件,以及一些系统支持文件。
- Step3:在Keil中建立工程文件 在Keil中点击Project,新建一个工程,并且存放在Step1中建立的文件中的Project文件夹
正确安装了芯片包的彦祖们就会看到这个界面,选好了MCU的型号后,点击OK,随后会弹出一个固件包下载界面,不用理会,直接关掉即可。
- Step4:在Keil中建立文件模板 工程创建好之后,紧接着就是创建Keil工程目录下的文件,如下图所示,文件名字彦祖们自己命名就可以了,只要知道里面该存放什么东西就行了。
- Step5:往各文件内部加载源文件和头文件
第一个就是STARTUP文件夹,它里面存放是启动文件(也就是我们之前说的那个有好几个可以选择的),根据所用MCU容量大小,我这里选择的是:GD32F10X_HD(记得加上USE_STDPERIPH_DRIVER,中间要有 , 隔开)。
第二个是CMSIS文件夹,里面存放的是系统头文件,也就是system_gd32f10x.h文件,双击找到这个文件,加入即可。
第三个是GD32F10x_Phriphel文件夹,里面存放的就是我们在第一步填充在Libraries中Src的内容,在设置好文件路径并成功编译后,与之相对应的Inc的内容也会被自动添加进来。
第四个就是User文件夹,里面存放的就是main.c以及一些系统设置函数
第五个是Docs文件夹,存放的是TXT记录文件,这个加不加就看彦祖们自己了。
- Step6:文件路径设置 点击Keil设置界面的魔术棒,选择 C/C++ 选项,在红圈内设置会用到的 .c 和 .h 文件路径。
- Step7:设置链接文件存放文件夹和Hex文件输出文件夹 同样点击Keil设置界面的魔术棒,选择 Listing ,Output 选项,在红圈内编译过程中生成的链接文件和Hex文件的存放地址。
(五)编译
如果看到上图,就说明,这个模板,已经莫得问题了!
结语
下一章:(1)GD32的时钟系统设置以及代码解析 (2)在Hal库和标准库下对GD32进行编程
2022年5月5日 于深圳