目录
前言
GD32是国内“兆易创新”开发可用于替代STM32系列的32位单片机,随着国产替代的大潮流下,GD32的方案被放到我们嵌入式软件工程师面前了,但是相对于STM32海量的学习资料和支持,GD的资料就要少的多。本文主要是讲创建GD32F105RBT6的keil初始工程,未来的所有外设驱动都是基于这个基础工程进行扩展。
一、GD32F105RBT6
GD32F105RBT6是互联型,相对于GD32F103RBT6的区别主要是外设的数量更多了,比如GD32F105RBT6有两个CAN。以下是GD32F105RBT6功能表:
所以GD32F105RBT6的工程改成GD32F103RBT6也不难。
二、创建GD32F105RBT6的keil工程
1.准备库文件
GD的官方只提供标准库,所以基于官方的开发需要使用他们的标准库,下载路径:https://www.gd32mcu.com/cn/download/0?kw=GD32F1
下载入下文件:
解压后得到以下文件:
我们先打开“..\GD32F10x_Demo_Suites_V2.2.0\GD32F10x_AddOn\Keil\Keil5”目录,双击“GigaDevice.GD32F10x_DFP.2.0.2.pack”安装keil的支持包。
我默认大家都安装好了keil开发软件,安装了支持包后可以在keil中看到如下图的情况:
在keil中,可以看到在Device中有GD单片机型号的选择。
接下来看看“GD32F10x_Firmware_Library”文件夹,这里存放了内核抽象和外设驱动库,基本工程主要用到“CMSIS”和“GD32F10x_standard_peripheral”文件夹下的文件。
启动文件存放位置:
..\GD32F10x_Demo_Suites_V2.2.0\GD32F10x_Firmware_Library\CMSIS\GD\GD32F10x\Source\ARM
对应不同容量的单片机,互联型要用startup_gd32f10x_cl.s。
2.创建工程目录
创建如下目录:
将“CMSIS”文件夹复制到“Core”文件夹里面:
将“GD32F10x_standard_peripheral”文件夹的内容复制到“GD32F10x_FWLib”文件夹里面:
这里包含了库函数的.c和.h文件。
“Drivers”文件夹则存放以后要用到的外设驱动文件,如图:
本工程是基本工程,所以以上的文件大多数都是不需要的,只需要留下LED即可。
“Project”存放keil的相关文件和main.c相关文件。
未建好工程前如下图:
“System”存放系统相关的文件。
3.keil创建工程
打开keil软件,点击“Project”创建新工程。
步骤如下:
选择工程存放目录,命名工程:
选择设备型号,选择好了点击“OK”:
修改名称:
添加文件组:
继续创建组和添加文件:
上图看main.c文件有报错,是因为没添加头文件路径导致的,接下来配置工程参数:
第3步,选择存放编译输出文件的路径,这边新建了一个文件夹,路径为:“..\gd32f105rbt6_base_project\Project\Output”
第4步,增加成“.bin”文件的指令:“fromelf --bin --output "$L@L.bin" "#L"”。
第5步,添加预处理符号:“USE_STDPERIPH_DRIVER,GD32F10X_CL”。
第6步,添加相关头文件路径。
第10步,完成配置后点击“OK”。
配置好后头文件报错消失了。
编译,点击如图图标,执行编译。
编译成功:
到这里这个基础的工程就完成了。
4.GD32F105RBT6基础工程介绍
主要介绍一些文件的作用,不涉及剪裁。
当使用外部高速晶振时,需修改一下时钟的配置,否则延时和定时器会不准确:
三、工程调式
LED灯1Hz频率闪烁。
工程文件已上传到我的资源中了,可供大家参考,路径为:https://download.csdn.net/download/RMDYBW/89549776
总结
距离上一篇博客发布过去了蛮久的,因为换了工作和行业,之前ESP32开发暂时不做了,但是我自己会继续学习的,最近才重新装好ESP32的开发环境,以后有相关文章也会分享出来。刚出来工作的时候是做STM32的开发,现在想着将相关的经验总结并深入地研究一下底层的东西,后面单片机的文章将会成系列的在我的CSDN博文中进行记录的。