资讯详情

国产单片机GD32系列开坑,带你零死角玩转GD32 第二章

【国产单片机开坑GD32系列,带你零死角玩GD32】


第二章 GD32开发环境建设,获取常用数据,点亮LED!

目录

(一)前言

第一章 GD32基本资料介绍对兆易创新的初步描述GD32系列MCU基本特征,但仅仅理解总是不够的,所以本章将解释Keil如何在平台上进行GD32开发环境的建设,工程模板的创建,以及获取一些必要技术资料的方法(假期反向钓鱼属于)!(梦想开始的地方!

在这里插入图片描述


(二)GD获取32相关资料

当我接触到一个新的MCU第一反应是去那里MCU的官网,试图寻找到这款MCU数据手册、用户手册、相应的固件库,让我不用从零开始敲代码。 对于GD32也是如此。当我们把它握在手掌上时,我们想到的是:

  • GD32的引脚是如何排列的?是否有最小系统原理图可供参考?
  • 如何查阅?GD32各功能的具体信息和详细说明?
  • 在Keil上,如何开发?GD32有库吗?这个库怎么用?
  • 如何构建一个GD32工程模板?

例如,上述问题测试了您对搜索引擎使用的熟悉程度。你知道,百度也很熟练。有些人百度一个小时,甚至没有看到数据的影子。有些人百度可以在5分钟内找到健康的学习材料。为了方便大家找到GD32相关资料,我已经把了GD32整理好常用资料,放在下面的链接中与大家分享:

另外,因为这里的信息不是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 该文件非常关键,包含以下内容
<> 分为以上4个文件夹(这个水印后面我会去掉,现在这个去不了了,因为已经放进来了),其中文件夹3和4都是USB开发时会用到,现在我们不管它,文件夹1和2才是我们目前要关注的重点。 文件1,即CMSIS文件夹,主要包含以下几个文件

文件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设置界面的魔术棒,选择 ListingOutput 选项,在红圈内编译过程中生成的链接文件和Hex文件的存放地址。

(五)编译

如果看到上图,就说明,这个模板,已经莫得问题了!

结语

下一章:(1)GD32的时钟系统设置以及代码解析 (2)在Hal库和标准库下对GD32进行编程

2022年5月5日 于深圳

标签: 传感器afs60b

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台