STM32入门系列-库目录及文件介绍
已经介绍了过了CMSIS标准,ST公司按照这个标准设计了一套基于STM32F10x的固件库,我们可以直接在ST公司的官网进行下载,现在给大家STM32最新固件库v3.5,在网盘上给大家提供了下载包,链接及提取码如下。
链接:http://pan.baidu.com/s/1nuXXLt3 密码:wztk
文件夹介绍
下面就来介绍下库文件的目录及文件。打开下载好的固件库包如下图所示。

下面简单介绍各个文件件及文件的作用。
_htmresc 文件夹:存放ST公司的LOGO图标,这个文件夹不用管。
Libraries 文件夹:在这个文件夹内有两个子目录,CMSIS文件夹用于存放符合CMSIS标准的文件,包括STM32启动文件、ARM Cortex内核文件和对应外设头文件stm32f10x.h。STM32F10x_StdPeriph_Driver文件夹用于存放STM32外设驱动文件,inc目录用于存放外设的头文件,src目录用于存放外设的源文件。从这些源文件的命名就可以知道对应文件的功能,比如stm32f10x_gpio.c文件,包含了对STM32的GPIO寄存器的操作函数等,如果要对STM32 GPIO操作可以调用这个文件内的函数,但是要记得添加对应的头文件,如stm32f10x_gpio.h。此文件夹内文件在后面创建库函数模板的时候会重点使用。
Project文件夹:此文件夹下有2个目录,STM32F10x_StdPeriph_Examples文件夹存放的是ST公司提供的外设驱动例程,在开发过程中可以借鉴这些例程快速构建自己的外设驱动。有时间大家可以看看,里面的编程思路对我们还是很有帮助的。STM32F10x_StdPeriph_Templates文件夹存放的是官方的固件库工程模板, 我们后面创建自己工程模板的时候就需要复制此文件夹内的几个文件。
Utilities文件夹:此文件夹是ST官方评估板的一些源文件,这里不需要管。
固件库文件夹根目录下有一个stm32f10x_stdperiph_lib_um.chm文件,这个文件是固件库的帮助文档,可以直接双击打开。这个文档对于后面学习库函数是非常有帮助的, 只不过这里只有英文版的, 但是里面的英文都很好理解,如果学习过程中有不明白的单词,都可以通过百度翻译等软件查询。
文件介绍
在介绍库文件之前先看下它们文件之间的关系,如下图所示。

core_cm3.h 文件位于“\STM32 最新固件库v3.5\Libraries\CMSIS\CM3\CoreSupport”目录下,说明此文件属于CMSIS标准文件,是用来提供进入M3内核的接口文件,属于CMSIS的核心文件,由ARM提供。对于所有M3内核的芯片来说这个文件都是相同的,不需要我们修改。
stm32f10x.h 、system_stm32f10x.h和system_stm32f10x.c文件存放在“\STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x”目录下,system_stm32f10x.h是片上外设接入层系统头文件。主要是申明设置系统及总线时钟相关的函数。与其对应的源文件是system_stm32f10x.c。这个文件里面
有一个非常重要的SystemInit()函数申明,这个函数在我们系统启动的时候都会调用,用来设置系统的整个系统和总线时钟。而stm32f10x.h是STM32F10x的头文件,类似于51单片机的reg.51,在开发STM32F10x程序的时候基本上都会调用这个头文件,可见其重要性。此文件内部封装了STM32的总线、内存和外设寄存器等,同时该文件还包含了一些时钟相关的定义和中断相关定义等。
stm32f10x_ppp.c文件是STM32外设的驱动源文件, 比如stm32f10x_gpio.c文件。 里面已经封装好操作GPIO外设底层的内容, 提供给我们使用的是一些API函数。stm32f10x_ppp.h就是对应的头文件。还有stm32f10x_rcc.c、misc.c和misc.h文件他们都是存放在“\STM32最新固件库v3.5\Libraries\STM32F10x_StdPeriph_Driver”内。
stm32f10x_it.c文件用于存放中断函数,不过中断函数也可以放在其他工程文件内,所以这个文件很少操作,对应的stm32f10x_it.h文件是它的头文件。 stm32f10x_conf.h文件是配置文件,用于删减我们使用的外设头文件,比如使用GPIO外设,那么就需要调用stm32f10x_gpio.h头文件,如果不使用GPIO外设,可以将此头文件注释掉,一般情况下我们不会对这个配置文件操作,因为如果不使用一个外设,可以在工程内不调用即可。这几个文件存在“\STM32 最新固件库v3.5\Project\STM32F10x_StdPeriph_Template”内。
Application.c文件用于存放用户编写的应用程序,文件名可以根据个人爱好命名。我们通常会命名为main.c,表示存放我们的主函数代码。
在后面创建工程模板时,添加这些文件还不够,还要将STM32的启动文件添加进来,否则系统不能启动。ST固件库提供的启动文件有很多,需根据使用的STM32芯片来选择,若开发板上使用的是高容量的STM32F1 芯片,选择startup_stm32f10x_hd.s。启动文件startup_stm32f10x_hd.s存放在“\STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm”内。

STM32入门系列-库目录及文件介绍的更多相关文章
- STM32入门系列-库帮助文档使用
在前面文件夹介绍时,提到了stm32f10x_stdperiph_lib_um.chm文件,此文件是库函数使用帮助文档,可以直接打开如下图. 因为STM32库函数非常多,我们不可能把所有的外设函数都记 ...
- Qt快速入门系列教程目录
Qt快速入门系列教程目录
- STM32入门系列-STM32时钟系统,时钟使能配置函数
之前的推文中说到,当使用一个外设时,必须先使能它的时钟.怎么通过库函数使能时钟呢?如需了解寄存器配置时钟,可以参考<STM32F10x中文参考手册>"复位和时钟控制(RCC)&q ...
- STM32入门系列-CMSIS标准
使用寄存器点亮开发板上LED,这种开发方式显然是不适合大众,对于STM32这样庞大的芯片,内部寄存器实在太多,如果操作的外设比较多,那么就需要花很多时间查询底层寄存器内容,而且即使程序写好,如果要换其 ...
- (转载)Linux入门:操作目录和文件的命令
PATH 每个用户的PATH都是不一样的: PATH中不包含“当前目录”: (1)echo $PATH:显示PATH环境变量: (2)PATH = "$PATH":/home/ ...
- STM32入门系列-启动文件介绍
在启动文件内部使用的都是汇编语言,这个文件的作用是负责执行微控制器从"复位"到"开始执行 main 函数"中间这段启动时间所必须进行的工作.它完成的具体工作有: ...
- STM32入门系列-存储器与寄存器介绍
介绍两部分内容: 什么是存储器映射 什么是寄存器及寄存器映射 为了让大家对存储器与寄存器有一个更清楚的认识,并且为之后使用 C 语言来访问 STM32 寄存器内容打下基础.等明白了如何使用 C 语言封 ...
- STM32入门系列-介绍STM32型号与功用
作为STM32初学者,一般会选择购置一块开发板,因为在开发板上有很多已经集成好的模块,如红外模块.按键模块.LED模块.DAC模块.ADC模块.can模块.485模块.以太网模块.WiFi模块.蜂鸣器 ...
- STM32入门系列-GPIO概念介绍
GPIO(general purpose intput output)是通用输入输出端口的简称,可以通过软件来控制其输入和输出.STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯 ...
随机推荐
- gRPC-Protocol语法指南
语法指南 (proto3) Defining A Message Type Scalar Value Types Default Values Enumerations Using Other Mes ...
- 结合 Shell 对 Koa 应用运行环境检查
在开发环境中,启动一个koa 应用服务,通常还需要同时启动数据库.比如.Mongodb.mysql 等 如果一直开着数据库服务,在不使用的话,电脑会占一定的性能.然而如果每次手动去启动服务,效率又不高 ...
- Centos-内核核心组成
linux内核,相当于linux大脑,高可靠和高稳定都是针对内核来说 完整linux核心组成部分 1. 内存管理 合理有效的管理整个系统的物理内存,同时快速响应内核各子系统对内存分配的请求 2. 进程 ...
- p.array 的shape (2,)与(2,1)的分别是什么意思
numpy.ndarray.shap是返回一个数组维度的元组. (2,)与(2,1)的区别如下: ndarray.shape:数组的维度.为一个表示数组在每个维度上大小的整数元组.例如二维数组中, ...
- Machine Learning-特征工程之特征选择
特征工程之特征选择 目录 简介 1 Filter(过滤式选择) 1.1 移除低方差特征(variance threshold) 1.2 信息增益(information gain) 1.3 单变量特征 ...
- 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1
051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...
- Centos7 Docker配置TLS认证的远程端口的证书生成教程(shell脚本一键生成)
通过 TLS来进行远程访问 百度百科 - TLS.我们需要在远程 docker 服务器(运行 docker 守护进程的服务器)生成 CA 证书,服务器证书,服务器密钥,然后自签名,再颁发给需要连接远程 ...
- 多测师讲解pthon _函数__return_高级讲师肖sir
#函数中的返回的作用(return) 案例: #函数中的返回的作用:def fun(): #定义的一个函数 num =100 a=num/2 #print(a) #50.0 return a # pr ...
- linq 整理(前序)
前言 对linq进行整理,分为前序.中序和后序. 前序就是一些简单的概念和模拟. 中序的话就是深挖一些思想. 后序对其进行解刨. 正文 语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# ...
- 还不会ida*算法?看完这篇或许能理解点。
IDA* 算法分析 IDA* 本质上就是带有估价函数和迭代加深优化的dfs与,A * 相似A *的本质便是带 有估价函数的bfs,估价函数是什么呢?估价函数顾名思义,就是估计由目前状态达 到目标状态的 ...