一、教程简介
本节教程主要是介绍程序开发的工程模板,在源码文件里面,提供了官方的工程模板,但是对我个人而言,我还是喜欢做一个自己喜欢的工程模板来用,这一节对我的工程模板进行介绍,仅供参考,后期所有的程序开发全部在此模板上面进行,详见如下介绍。
二、模板介绍
1、工程文件
在凌智君的工程模板下面共分为11个文件夹,每一个文件都有自己独特的作用,相互之间不产影响,层次清晰。

图1 工程根目录文件夹
(1)CMSIS文件夹
这个文件夹主要是存放GD32f10x 的系统文件和内核文件,一般是固定的这几个文件,不会变动,后续开发过程中,如果需要添加会单独介绍。


图2 系统文件
(2)Delay文件夹
这个文件夹主要是存放延时函数,虽然GD32F103的系统文件有专门定义的延时函数(在systick.c文件中),可以通过修改变量实现不同的延时,如图所示,但是在一些开发过程中,为了方便,我们需要根据项目需求自己定义延时函数,所以这个文件夹主要是存放这类延时函数的,关于这个延时函数的定义方式,在后续教程中会进行详细讲解。

图3 系统延时函数
(3)HardWare文件夹
这个文件主要存放一些硬件驱动的定义,在后续开发过程中,我们会使用到各种传感器以及提醒设备,例如LED、蜂鸣器、温湿度传感器、霍尔传感器以及激光雷达等等,关于这些硬件的驱动方式在后续开发过程中会一一讲解,现在只需要了解每个文件夹存放的文件即可。
(4)HeaderFiles文件夹
这个文件主要是放头文件,不要误以为是存在所有文件的头文件,凌智君在玩51单片机的时候,就有一个习惯,喜欢将所有的头文件都定义到一个.h 文件中,这样在其他文件中使用的时候,不需要写很多头文件,只要一个就可以解决,具体定义方式后期会专门讲解。

图4 自定义头文件
(5)Implement文件夹
这个文件夹主要是存放执行文件,在一个正式产品工程项目中,主函数中不会写太多的东西,都是专门定义在另外一个文件中,当然这可能也是个人习惯,凌智君有这样的习惯,喜欢定义在其他地方,这种方式仅供参考,选择适合自己的定义方式。

图5 执行文件
(6)Library文件夹
这个文件夹主要是存放官方提供的库文件,可以根据自己需要添加库文件,也可以一次性全部添加进去,全部添加进去有一个不好地方,编译速度会变慢,凌智君喜欢一次性添加进去,这样就不用每次都要考虑要不要添加,或者编译出现问题了,各种怀疑库文件是不是没加全等。其中Include文件夹是存放.h头文件的,source是存放.c源文件的。

图5 库文件

图6 库文件头文件


图7 库文件源文件
(7)project文件夹
这个文件夹是存放工程文件的,打开工程的文件就存放在这里,以及一些编译和调试产生的文件,这个文件一般不用修改,唯一需要修改地方就是工程的名字,根据自己的需要进行修改。

图8 工程文件
(8)Protocol文件夹
这个文件夹是存放通讯协议的文件夹,在这个教程中会讲解串口、CAN总线、485、韦根等通讯协议,以及一些WiFi、NRF2401等通讯方式,这个文件夹会存放这个驱动及协议,具体请见后期教程。
(9)Readme文件夹
这个文件夹主要是存放对每个工程文件的一个简单介绍,以及相关的注意事项,建议每次打开一个工程之前,都先看这个文件夹,内容很重要。

图9 提示文件
(10)Startup文件夹
这个文件是存放系统启动文件,尽量不要修改,至少凌智君没有修改过。
(11)User文件夹
这个文件夹主要是存放一些中断、主函数、系统时钟等文件,这里面文件一般不会增加,只有根据项目需求修改文件里面的内容。

图10 中断及时钟文件

三、本章总结
以上是凌智君对工程模板的讲解,可能有些地方讲解不到,或者讲解不清楚的地方欢迎指正,本教程主要是针对零基础开发者,如果有开发经验的,此章节可以忽略,创作不易,严禁商用,仅供个人学习使用。

淘宝链接:
https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-13627328884.10.19e2550aPRKWUh&id=663637756893
(GD32F103基础学习开发板 核心板 提供例程及指导教程)

凌智君的联系方式如下:
QQ:

2228398717

微信:

微信公众号:

GD32F103基础教程—工程模板(二)相关推荐

  1. 预定义类型未定义或导入_LimeSurvey基础教程(二)——问题类型

    在上一讲中,我们主要介绍了LimeSurvey的历史.功能.结构以及使用场景,其中就提到"20种以上题型,可自由运用".从某种意义上来说,调查就是由一系列的问题(类型)所组成,所以 ...

  2. SQL语句的基础教程(二)

    SQL语句的基础教程(二) 开发工具与关键技术:Visual Studio 2015 .SQL语句的基础教程(二) 作者:袁何恩 撰写时间:2019年6月16日 今天,我接着上次的内容和大家分享的技术 ...

  3. matlab最基础教程(二):变量类型与赋值

    matlab最基础教程(二):变量类型与赋值 前言:matlab解决问题的最基本思路是建立脚本文件,那么脚本文件的第一段就是定义一些变量,这和C语言等编程思想是一样的.matlab提供的变量类型很多, ...

  4. CorelDRAW 10基础教程(二)(转)

    CorelDRAW 10基础教程(二)(转)[@more@]    1 定制自己的操作界面 象其它的一些图形处理软件一样.CorelDRAW 10 也为用户提供了很多的工具,为了避免诸如调色板中.工具 ...

  5. AI绘图软件分享:Midjourney 基础教程(二)

    大家好,我是权知星球,今天继续给大家介绍AI绘图软件分享:Midjourney 基础教程(二) ⼀.Midjourney 服务器介绍 1.Discord 软件介绍 Midjourney AI 绘画服务 ...

  6. DirectX12(D3D12)基础教程(二十一)—— PBR:IBL 的数学原理(1/5)

    目录 1.前言 1.1.一些感慨 1.2.运行效果展示 1.3.示例简介 1.4.示例操作说明 1.5.本章内容的简述 2.什么是IBL 2.1."Cook-Torrance" 模 ...

  7. DirectX12(D3D12)基础教程(二十二) ——HDR IBL 等距柱面环境光源加载和解算及 GS 一次性渲染到 CubeMap

    前序文章目录 DirectX12(D3D12)基础教程(一)--基础教程 DirectX12(D3D12)基础教程(二)--理解根签名.初识显存管理和加载纹理.理解资源屏障 DirectX12(D3D ...

  8. GD32F103基础教程—GPIO输出实验(五)

    一.教程简介 本章主要是讲解GPIO输出实验,讲解GPIO的输出配 置方法,并控制LED2灯实现间隔1s闪烁. 二.实验流程 1.工程配置 (1)首先在工程模板目录下的HardWare文件夹内创建文件 ...

  9. GD32F103基础教程—跑马灯实验(六)

    一.教程简介 本章主要是讲解多路GPIO输出实验,及相关GPIO输 出配置方法,并控制LED2和LED3灯实现间隔1s闪烁. 二.实验流程 1.工程配置 跑马灯工程配置方法与第五章的配置方法一致,具体 ...

最新文章

  1. 【Java并发编程】并发容器之CopyOnWriteArrayList
  2. linux如何关闭 lvm管理,Linux之LVM管理
  3. tomcat(2)一个简单的servlet容器
  4. dao-service-servlet-jsp构建简易web通讯录(三层开发)软件安装
  5. 学技术不可盲目崇洋媚外,时刻记得要自主创新,勿忘国耻
  6. 智能锁行业安全分析报告
  7. 【USACO 2.4】Fractions to Decimals(分数转小数)
  8. verifycode.php,php验证码|php图片验证码|php image.verifyCode.class.php
  9. 绿盟 java 面试_绿盟科技校园招聘面试经验|面试问题(共52条)- 职业圈
  10. JavaScript形而上的单例模式
  11. 软件工程本科生实习_我从n00b实习生到工程团队主管的方式
  12. 代写计算机ei,骗子 张爱荣 以代写代发EI期刊骗钱 钱收到后QQ不上,手机关机
  13. 2023适老用品展、CISSE北京养老展、老年产业博览会
  14. VISIO无法插入到word,ppt中
  15. 如何使用 ABAP 代码发送带有 PDF 附件的电子邮件
  16. Kettle报错:Driver class org.gjt.mm.mysql.Driver could not be found
  17. Android的.9图片使用问题
  18. 肖 清华计算机系 北大生命科学,7个清华北大,11+复旦交大,后续还有一大波浙大……他们都是同班同学!...
  19. 企业信息化:创新需要偏执狂
  20. 基于C++的文件加密解密(密码学课程设计)

热门文章

  1. 因为计算机中丢失6595,windows 10 安装CVE-2021-34527漏洞补丁后,开机任务栏丢失,补丁无法卸载...
  2. 使用MyQR制作二维码
  3. 《这一代人的学习》观看笔记
  4. 微型计算机2017年3月上,2017年3月份规模以上工业增加值增长7.6%
  5. python二级真题 d[i] = d.get(i,0)+1
  6. 《钟馗伏魔:雪妖魔灵》另类解读
  7. Android开发关键知识点讲解
  8. 第10章 Python第三方库概览
  9. 黑马程序员_JAVA之IO流(其他IO流)
  10. 天猫魔盒改无线打印服务器,图文教学天猫魔盒如何设置WIFI的过程