通过网盘分享的文件:STM32工程模板
链接:https://pan.baidu.com/s/1YPFgXu1kwuwsCVxrXFSjZg?pwd=1111 提取码: 1111
--来自百度网盘超级会员v5的分享
这个工程模版是来源于B站江科大的模版,每个人搭建工程文件结构不一样,仅供参考。
工程文件目录结构如图所示
1、DebugConfig
DebugConfig:
Keil自动生成的文件,删了不用担心,打开一个工程会自己生成。这个文件夹保存的是一些调试配置文件(.dbgconf文件),记录的都是调试相关的配置。
调试器类型(ST-Link,J-Link...),接口协议(SWD/JTAG...),用户设置代码断点,目标芯片型号,Flash 下载算法配置等等一些调试的配置信息
Project.uvguix.Admin:
该文件是keil为个人用户自动生成的界面配置文件,保存用户打开工程时的个性化窗口布局。
这个文件是名字为Admin的用户的个性化窗口配置。这个文件keil自动生成。
删除这个文件之后重新打开工程,工程会恢复默认的窗口布局
Project.uvguix.Administrator:
这个文件和上一个是同理的,这个文件是由用户名为Administrator生成的窗口配置文件,
每个用户打开一个新的工程时都会生成一个“Project.uvguix.用户名”文件,确保上一个打开这个工程的界面设置不会影响你的工程界面设置
这个是江科大的模版,江科大的作者用户名字是Admin,所以生成文件Project.uvguix.Admin。
我的用户名是Administrator,我打开江科大工程之后就会生产文件Project.uvguix.Administrator。
这个文件会在keil进行代码编译的时候产生,在keil关闭的时候也会产生,最新生成的文件会覆盖原来的文件
Project.uvoptx:
文件是工程的核心调试与用户会话配置文件,功能有这些:
所有断点(位置、条件、使能状态)、观察窗口(Watch Windows)中的变量/表达式、内存窗口的地址范围、显示格式、外设寄存器视图的配置 、工程管理器中文件/文件夹的展开/折叠状态、当前选中的 Target/Group/文件 、最后一次使用的调试器(J-Link/ST-Link等)、 调试初始化脚本的引用路径(关联 DebugConfig/)
当您在 Keil 中进行调试操作(设置断点、添加监视变量等)或调整工程视图时,文件会被实时更新。关闭工程时,会保存最终状态
Project.uvprojx:
这个文件的图标和keil软件图标是一样的
这个文件是工程的核心,定义了整个项目的框架和构建规则,同时通过这个文件打开工程,这个文件很重要。
功能:所有源文件、头文件路径、汇编文件的物理路径和分组逻辑、芯片型号和启动文件、目标和组的层级关系、编译器优化等级、调试信息、宏定义、包含路径、语言标准、分散加载文件路径、堆栈大小、库文件的链接规则 、生成的可执行文件类型、输出文件名称和目录 、调试器类型、初始化脚本路径
这个文件是必须的,删除其他文件工程仍然可以打开,删除这个文件工程完全失效。
2、Library
这里面存放的是一些标准库文件配置文件,命名规则为“芯片型号_外设”,可以通过外设名字直观地了解是哪一个外设的配置文件。
misc.c
misc.h
这两个文件是Cortex-M 内核的杂项系统功能配置文件(NVIC 中断优先级配置 、SysTick 初始化,初始化NVIC外设,设置向量表的位置和便宜量等等)。
也算是属于配置文件,所以可以放在同一个文件夹
3、Listing
Listing文件夹存放的是编译器和链接器生成的文本格式报告文件,主要用于分析代码结构,内存分配和编译过程的细节。主要在查看内存的使用和查看汇编代码中应用。
这个文件的内容是Keil自动生成的,删除后编译会自动生成,一般会生成两个文件".map"文件和".lst"文件
.map
文件主要记录函数/变量在内存中的精确地址, 各代码段(RO/RW/ZI)大小,库文件依赖关系,堆栈空间分配
.lst
文件主要记录的是每条 C 源码对应的汇编指令,编译器优化结果,代码段大小统计
4、Objects
这个文件夹存放编译器和链接器生成的二进制输出文件,这些文件是构建工程过程中产生的所有中间文件和最终可执行文件
keil自动生成
.o
单个源文件编译之后的二进制机器代码
.d
记录源文件包括的头文件
.crf
函数变量的定义与引用位置
.axf
可执行文件,包含调试信息,符号表
.hex
烧录到芯片的最终程序
.bin
直接写入芯片的镜像文件
5.Start
core_cm.c(.h)
Cortex为控制器软件接口标准,是ARM定制的一个用于Cortex-M系列的一个标准,主要是提供头通用的内核API访问接口和一些片上外设
stm32f10x.h
常用的宏定义,寄存器结构定义
system_stm32f10x.c
系统时钟的配置,主要是对系统时钟倍频和分频的配置
system_stm32f10x.h
系统时钟配置函数的声明;
starup_stm32f10x_cl.s
启动文件,开辟栈空间和堆空间,中断向量表,初始化堆栈,不同容量的单片机对应不同的启动文件
6.User
main.c:程序开始的地方
stm32f10x_conf.h:选择包含外设库头文件进行编译
stm32f10_it.c
存放中断函数的定义
stm32f10_it.h
存放中断函数的声明
其他外设驱动文件
这个文件还会存放用户自定义的外设驱动相关的文件,例如led.c led.h beep.c beep.h