GD32F103基础教程—工程模板(二)
一、教程简介
本节教程主要是介绍程序开发的工程模板,在源码文件里面,提供了官方的工程模板,但是对我个人而言,我还是喜欢做一个自己喜欢的工程模板来用,这一节对我的工程模板进行介绍,仅供参考,后期所有的程序开发全部在此模板上面进行,详见如下介绍。
二、模板介绍
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基础教程—工程模板(二)相关推荐
- 预定义类型未定义或导入_LimeSurvey基础教程(二)——问题类型
在上一讲中,我们主要介绍了LimeSurvey的历史.功能.结构以及使用场景,其中就提到"20种以上题型,可自由运用".从某种意义上来说,调查就是由一系列的问题(类型)所组成,所以 ...
- SQL语句的基础教程(二)
SQL语句的基础教程(二) 开发工具与关键技术:Visual Studio 2015 .SQL语句的基础教程(二) 作者:袁何恩 撰写时间:2019年6月16日 今天,我接着上次的内容和大家分享的技术 ...
- matlab最基础教程(二):变量类型与赋值
matlab最基础教程(二):变量类型与赋值 前言:matlab解决问题的最基本思路是建立脚本文件,那么脚本文件的第一段就是定义一些变量,这和C语言等编程思想是一样的.matlab提供的变量类型很多, ...
- CorelDRAW 10基础教程(二)(转)
CorelDRAW 10基础教程(二)(转)[@more@] 1 定制自己的操作界面 象其它的一些图形处理软件一样.CorelDRAW 10 也为用户提供了很多的工具,为了避免诸如调色板中.工具 ...
- AI绘图软件分享:Midjourney 基础教程(二)
大家好,我是权知星球,今天继续给大家介绍AI绘图软件分享:Midjourney 基础教程(二) ⼀.Midjourney 服务器介绍 1.Discord 软件介绍 Midjourney AI 绘画服务 ...
- DirectX12(D3D12)基础教程(二十一)—— PBR:IBL 的数学原理(1/5)
目录 1.前言 1.1.一些感慨 1.2.运行效果展示 1.3.示例简介 1.4.示例操作说明 1.5.本章内容的简述 2.什么是IBL 2.1."Cook-Torrance" 模 ...
- DirectX12(D3D12)基础教程(二十二) ——HDR IBL 等距柱面环境光源加载和解算及 GS 一次性渲染到 CubeMap
前序文章目录 DirectX12(D3D12)基础教程(一)--基础教程 DirectX12(D3D12)基础教程(二)--理解根签名.初识显存管理和加载纹理.理解资源屏障 DirectX12(D3D ...
- GD32F103基础教程—GPIO输出实验(五)
一.教程简介 本章主要是讲解GPIO输出实验,讲解GPIO的输出配 置方法,并控制LED2灯实现间隔1s闪烁. 二.实验流程 1.工程配置 (1)首先在工程模板目录下的HardWare文件夹内创建文件 ...
- GD32F103基础教程—跑马灯实验(六)
一.教程简介 本章主要是讲解多路GPIO输出实验,及相关GPIO输 出配置方法,并控制LED2和LED3灯实现间隔1s闪烁. 二.实验流程 1.工程配置 跑马灯工程配置方法与第五章的配置方法一致,具体 ...
最新文章
- 【Java并发编程】并发容器之CopyOnWriteArrayList
- linux如何关闭 lvm管理,Linux之LVM管理
- tomcat(2)一个简单的servlet容器
- dao-service-servlet-jsp构建简易web通讯录(三层开发)软件安装
- 学技术不可盲目崇洋媚外,时刻记得要自主创新,勿忘国耻
- 智能锁行业安全分析报告
- 【USACO 2.4】Fractions to Decimals(分数转小数)
- verifycode.php,php验证码|php图片验证码|php image.verifyCode.class.php
- 绿盟 java 面试_绿盟科技校园招聘面试经验|面试问题(共52条)- 职业圈
- JavaScript形而上的单例模式
- 软件工程本科生实习_我从n00b实习生到工程团队主管的方式
- 代写计算机ei,骗子 张爱荣 以代写代发EI期刊骗钱 钱收到后QQ不上,手机关机
- 2023适老用品展、CISSE北京养老展、老年产业博览会
- VISIO无法插入到word,ppt中
- 如何使用 ABAP 代码发送带有 PDF 附件的电子邮件
- Kettle报错:Driver class org.gjt.mm.mysql.Driver could not be found
- Android的.9图片使用问题
- 肖 清华计算机系 北大生命科学,7个清华北大,11+复旦交大,后续还有一大波浙大……他们都是同班同学!...
- 企业信息化:创新需要偏执狂
- 基于C++的文件加密解密(密码学课程设计)
热门文章
- 因为计算机中丢失6595,windows 10 安装CVE-2021-34527漏洞补丁后,开机任务栏丢失,补丁无法卸载...
- 使用MyQR制作二维码
- 《这一代人的学习》观看笔记
- 微型计算机2017年3月上,2017年3月份规模以上工业增加值增长7.6%
- python二级真题 d[i] = d.get(i,0)+1
- 《钟馗伏魔:雪妖魔灵》另类解读
- Android开发关键知识点讲解
- 第10章 Python第三方库概览
- 黑马程序员_JAVA之IO流(其他IO流)
- 天猫魔盒改无线打印服务器,图文教学天猫魔盒如何设置WIFI的过程