STM32新建工程所需文件介绍

刚开始接触STM32,第一件事情就是新建一个工程,建立的过程中各种复制粘贴,表示一脸懵逼
STM32新建工程所需文件介绍
于是去查了一下建立工程时用到的文件都是干嘛的,为什么需要他们,做了一下简单粗略的整理。

首先,新建工程所需的文件都在固件库包中。据说可以在ST官网上找到。
STM32新建工程所需文件介绍
然后我们打开它
STM32新建工程所需文件介绍

新建工程需要用到的文件在Librariesproject中,然后其他的就先别去管他。我们来看libraries
STM32新建工程所需文件介绍

里面有两个文件夹,我们先看CMSIS

.CMSIS全称Cortex Microcontroller Software Interface Standard翻译过来是ARM Cortex™ 微控制器软件接口标准,为什么要有这个标准呢?

简单说是,ARM是一家做芯片标准的公司,它负责的是芯片内核的架构设计,然后其他公司根据它的内核标准设计自己的芯片,所以不同公司设计出来的芯片有不同的端口数量,串口数量,控制方法等等。 所以如果不硬性规定的话,他们也会按照自己的喜好写出不同风格的库函数,然后……..就爆炸了,换家公司的芯片就要重新弄库函数。
STM32新建工程所需文件介绍

所以CMSIS 标准就强制规定,芯片生产公司设计的库 函数必须按照 CMSIS 这套规范来设计。
STM32新建工程所需文件介绍
CMSIS标准包括对各个外设驱 动文件的文件名字规范化,以及函数名字规范化等等一系列规定。

接下来我们打开CMSIS
STM32新建工程所需文件介绍
看到一个CM3,这么取名是因为我们用的是Cortex-M3 芯片。

打开CM3
STM32新建工程所需文件介绍
看到CoreSupportDeivceSupport.

CoreSupport意思是核心支持(直译….),里面有两个文件(终于说到我们建立工程需要复制的文件了)。
STM32新建工程所需文件介绍
core_cm3.ccore_cm3.h,这两个文件的作用是为那些采用 Cortex-M3 核设计的芯片外设提供一个进入M3内核接口。
DeivceSupport是设备支持(依旧直译….),
我们打开它
STM32新建工程所需文件介绍
打开它
STM32新建工程所需文件介绍
打开它(这个文件夹的名字含义是我们芯片的型号)
STM32新建工程所需文件介绍
这个目录下的system_stm32f10x.c, system_stm32f10x.h 以及 stm32f10x.h 文件是我们需要复制过去的第二批文件。

stm32f10x.h是系统寄存器定义申明以及包装内存操作。
system_stm32f10x.csystem_stm32f10x.h 是设置系统以及总线时钟。

然后我们打开startup文件夹
STM32新建工程所需文件介绍
打开arm文件夹
STM32新建工程所需文件介绍
然后就看到了我们第三批需要复制的文件—启动文件,因为对应不同容量的芯片的启动文件不一样,所以我们只要需要根据自己的芯片在里面挑一个。

关于启动文件的作用:启动文件是任何处理器在上电复位后最先运行的一段汇编程序。在编写的c语言代码运行前建立一个合适的环境,接下来才能运行我们写的文件。

我们返回一开始的文件夹
STM32新建工程所需文件介绍

现在来看一下STM32F10x_StdPeriph_Driver
StdPeriph Driver(standard peripheral)的意思是标准外围设备驱动。 里面包括两个文件夹(我们建立工程需要复制的第四批文件)
STM32新建工程所需文件介绍
其中,inc(include)里面放的是stm32f10x_xxx.h头文件,src(source code)里面放的是stm32f10x_xxx.c固态库源码文件.这里的文件也是固件库的核心文件,每个外 设对应一组文件。

嗯,好像就是这些了。
STM32新建工程所需文件介绍