一、新建本地工程文件夹

为了工程目录更加清晰,我们在本地电脑上新建一个“工程模板”文件夹,在它之下再新建 6 个文件夹,具体如下:

名称 作用
Doc 用来存放程序说明的文件,由写程序的人添加
Libraries 存放的是库文件
Listing 存放编译器编译时候产生的 C/汇编/链接的列表清单
Output 存放编译产生的调试信息、hex 文件、预览信息、封装库等
Project 用来存放工程
User 用户编写的驱动文件

在本地新建好文件夹后,把准备好的库文件添加到相应的文件夹下:

名称 作用
Doc 工程说明.txt
Libraries CMSIS:里面放着跟 CM3 内核有关的库文件
GD32F10x_standard_peripheral:GD32 标准外设库文件
Listing 暂时为空
Output 暂时为空
Project 暂时为空
User gd32f10x_libopt.h:用来配置库的头文件
gd32f10x_it.h
gd32f10x_it.c:中断相关的函数都在这个文件编写,暂时为空
main.c:main 函数文件

二、新建工程

打开 KEIL5,新建一个工程,工程名根据喜好命名,我这里取 Template(中文是模版
的意思),保存在 Project\RVMDK(uv5)文件夹下。

2.1 选择CPU型号

根据你开发板使用的 CPU 具体的型号来选择。如果这里没有出现你想要的 CPU 型号,或者一个型号都没有,那么肯定是你的 KEIL5 没有添加 device 库,查看 GD32F103学习笔记(1)——搭建环境、编译烧写

2.2 在线添加库文件

等下我们手动添加库文件,这里我们点击关掉。

2.3 添加组文件夹

在新建的工程中添加 5 个组文件夹,用来存放各种不同的文件,文件从本地建好的工程文件夹下获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可。

名称 存放文件
Startup startup_gd32f10x_hd.s(根据芯片Flash容量选择)
CMSIS system_gd32f10x.c
Peripherals GD32F10x_standard_peripheral\Source 文件夹下的全部 C 文件,即固件库
User 用户编写的文件:
main.c:main 函数文件,暂时为空
gd32f10x_it.c:跟中断有关的函数都放这个文件,暂时为空
Doc 工程说明.txt:程序说明文件,用于说明程序的功能和注意事项等

2.4 添加文件

  • CMSIS 中添加从官方下载的固件库中
    GD32F10x_Firmware_Library_V2.2.2\Firmware\CMSIS\GD\GD32F10x\Source的system_gd32f10x.c文件

  • Peripherals 中添加从官方下载的固件库中
    GD32F10x_Firmware_Library_V2.2.2\Firmware\GD32F10x_standard_peripheral\Source的全部C文件

  • Startup 中添加从官方下载的固件库中
    GD32F10x_Firmware_Library_V2.2.2\Firmware\CMSIS\GD\GD32F10x\Source\ARM的根据芯片容量选择对应的启动文件(这里我用的是GD32F103RCT6选择startup_gd32f10x_hd.s

  • User 中添加main.c和从官方下载的固件库中GD32F10x_Firmware_Library_V2.2.2\Template的gd32f10x_it.cgd32f10x_it.hgd32f10x_libopt.h文件

2.5 配置魔术棒选项卡

  • Target 中选中微库“Use MicroLib”,为的是在日后编写串口驱动的时候可以使用 printf 函数。

  • 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“Output”文件夹,如果想
    在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上。

  • 在 Listing 选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹。

  • 在 C/C++选项卡中添加处理宏及编译器编译的时候查找的头文件路径。如果头文件路径添加有误,则编译的时候会报错找不到头文件。

    在这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。在编
    译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。

    • GD32F10X_HD 宏:为了告诉 GD32 标准库,我们使用的芯片类型是 GD32
      型号是大容量的,使 GD32 标准库根据我们选定的芯片型号来配置。
    • USE_STDPERIPH_DRIVER 宏:为了让 gd32f10x.h 包含 gd32f10x_libopt.h 这个头文件。

2.6 仿真器配置

2.6.1 J-Link烧录

单击 Options for Targe,再选择 Debug 边上是 Use 框是
J-LINK 说明选择正确,再单击 Settings,会跳出有 IDCODE 显示,说明已经找到芯片内核,如果没有显示,排查如图箭头所指的 Port 是否选为 SW,还有 J-LINK 驱动是否正确,一般以上排查都能解决问题,最终有 IDCODE 显示,说明板子硬件连接,工程配置都正确,可以进行下一步下载。

如果用的是JLink V8,很可能会遇到无法正常烧写的问题,参考 解决方法:调试NRF52832工程时JLink提示错误信息read:@0x02000004

2.6.2 ST-Link烧录

  1. 安装 ST-Link 下载器的驱动
    百度网盘:https://pan.baidu.com/s/1ZoXKAqjec9Bc6oN6_MNJyA?pwd=9181 提取码:9181
    下载解压后双击 stlink_winusb_install 进行安装。
  2. 选择 ST-Link 下载
    单击 Options for Targe,再选择 Debug 边上是 Use 框是
    ST-LINK 说明选择正确,再单击 Settings,会跳出有 IDCODE 显示,说明已经找到芯片内核,板子硬件连接,工程配置都正确,可以进行下载。


2.6.3 CMSIS-DAP烧录

单击 Options for Targe,再选择 Debug 边上是 Use 框是
CMSIS-DAP 说明选择正确,再单击 Settings,会跳出有 IDCODE 显示,说明已经找到芯片内核,箭头所指的 Port 选为 SW,速度选择 5MHz,板子硬件连接,工程配置都正确,可以进行下一步下载。

2.7 选择 CPU 型号

这一步的配置也不是配置一次之后完事,常常会因为各种原因需要重新选择,当你下载的时候,提示说找不到 Device 的时候,请确保该配置是否正确。有时候下载程序之后,不会自动运行,要手动复位的时候,也回来看看这里的“Reset and Run”配置是否失效。GD32F103RCT6 用的 FLASH 大小是 512K,所以这里选择 512K 的容量,如果使用的是其他型号的,要根据实际情况选择。

2.8 修改main.c

#include "gd32f10x.h"int main(void)
{while(1){}
}

点击编译,显示如下:

一个新的工程模版新建完毕。

三、工程模板

百度网盘:https://pan.baidu.com/s/1eDirHaScNw6CcRRBf5y7Hg?pwd=fag0
提取码:fag0


• 由 Leung 写于 2022 年 4 月 11 日

• 参考:GD32F103基础教程—工程模板(二)
    ②搭建GD32工程模板

GD32F103学习笔记(3)——新建工程相关推荐

  1. GD32F103学习笔记(8)——ADC接口使用

    一.简介 ADC(Analog-to-Digital Converter),即模拟-数字转换器,可以将连续变化的模拟信号转换为离散的数字信号,进而使用数字电路进行处理,称之为数字信号处理. GD32F ...

  2. 51单片机学习笔记之新建工程、点亮一盏小灯

    我们keil软件安装成功之后,我们就开始新建工程之旅. 首先我们在桌面新建一个文件夹,起名叫 51 工程.在里面在新建两个文件夹,起名叫obj,main 我们双击keil软件.点击Project,选择 ...

  3. GD32F103学习笔记(6)——系统延时使用

    一.简介 SysTick -系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中.系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置 ...

  4. CST微波工作室学习笔记—1.新建工程

    CST仿真软件新建工程: 1.程序 > CST STUDIO SUITE 2019文件夹 > CST STUDIO SUITE 2019:(也可用桌面的启动程序 打开) 2.点击后进入到C ...

  5. ADS学习笔记—1.新建工程

    1.打开ADS,进入工作界面 在开始菜单里选择: 选择执照,可以选择第一个或者第二个,这里我选择第二个: 点击OK后就进入了ADS工作界面 2.新建一个工作区 注意:文件名和保存路径不要用中文(如果用 ...

  6. 测试Servlet生命周期学习笔记

    测试环境:windows xp旗舰版 软件环境:myclipse8.5+tomcat7.0 ****************************************************** ...

  7. xcode 学习笔记2:动态添加view

    xcode 学习笔记2:动态添加view 2011-07-06 16:48:39|  分类: 计算机学习|字号 订阅 前面说的都是用的Interface Builder来编辑.xib文件来给窗口添加各 ...

  8. [学习笔记]stm32

    文章目录 一些问题 学习笔记 stm32F1 stm32F4 简介 Cortex内核 Cortex-M4内核 库开发与寄存器开发的关系 STM32 固件库与 CMSIS 标准 内部结构 最小系统 小马 ...

  9. OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十

    OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...

  10. OpenCv2 学习笔记(1) Mat创建、复制、释放

    OpenCV和VS2013的安装图文教程网上有很多,建议安装好之后,用VS2013建立一个空工程,用属性管理器分别新建一个对应debug和release工程的props配置文件,以后直接根据工程需要添 ...

最新文章

  1. R语言对dataframe的行数据进行排序(Ordering rows)实战:使用R原生方法、data.table、dplyr等方案
  2. 把Nginx注册成Windows的系统服务
  3. Matlab心得及学习方法(不断更新)
  4. 【Python-ML】SKlearn库学习曲线和验证曲线
  5. RedHat Enterprise Linux6.4 使用CentOS yum源
  6. 骁龙820和KryoCPU:异构计算与定制计算的作用 【转】
  7. jcmd_程序化JCMD访问
  8. LeetCode 779. 第K个语法符号(找规律)
  9. 【youcans 的 OpenCV 例程200篇】152. 边缘检测之 LoG 算子
  10. 如何在windows下安装GIT
  11. Code Chef - Chef and Graph Queries
  12. 《云周刊》69期:开门红利!阿里云2月活动来袭
  13. tomcat与java的版本_Tomcat JVM版本与JAVA_HOME不同
  14. OSChina 周一乱弹 ——我后悔让爸妈用微信了!
  15. 相关常用单位转换 mil 英里 英尺 .......
  16. 学习iOS逆向有什么用?
  17. 微信群控云控客服开发SDK
  18. 张宇基础30讲——第6讲-中值定理
  19. 软件架构-zookeeper之curator详解
  20. OFDM学习笔记(六)(峰均值问题)

热门文章

  1. 令牌环(Token Ring)
  2. matlab-norm函数
  3. 面包屑导航条实现三级分类查询
  4. 啦啦外卖独立版41.4最新外卖源码全开源带vue源码
  5. 机器学习丨如何理解正定矩阵和半正定矩阵
  6. 矩阵理论及其应用课后习题作业:第一章 第二章
  7. w25q64 linux,我用W25Q16的读写函数测试w25Q64怎么总是失败?需要改动什么吗?
  8. topcon gps 软件下载
  9. h3c服务器通过pxe安装系统,h3c服务器设置pxe启动
  10. 项目实习(四)多线程端口扫描器