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 引脚与外部设备连接起来,从而实现与外部通讯 ...
随机推荐
- jdbc原理与步骤
jdbc原理 1.加载JDBC驱动,并将其注册到DriverManager 2.建立数据库连接,获取connection对象 3.建立Statement对象或PreparedStatement对象 4 ...
- Python-变量、变量作用域、垃圾回收机制原理-global nonlocal
变量实现原理决定了Python使用的垃圾回收机制为变量引用计数,当这个对象引用计数为0时候,则会自动执行__del__函数回收资源, del方法只是把变量指向的对象引用计数减一而已并删除这个变量 表达 ...
- MATLAB中exist函数的用法
exist:exist主要有两种形式,一个参数和两个参数的,作用都是用于确定某值是否存在:1. b = exist( a) 若 a 存在,则 b = 1: 否则 b = 0:2. b = e ...
- OneWire应用 单总线温度传感器DS18系列
OneWire DS18S20, DS18B20, DS1822 Temperature DS18B20 The DS18B20 digital thermometer provides 9-bit ...
- Docker笔记5:实现加速器,加快下载/拉取镜像速度
由于 Docker 官方仓库存储于国外服务器,因此,我们使用d ocker pull 命令拉取镜像时,速度很慢.但是,我们可以使用国内服务商提供的加速器进行加速,加速器实质是一个IP地址,将其加入到d ...
- Java防止文件被篡改之文件校验和
Java防止文件被篡改之文件校验和转载:请注明出处,谢谢! 1.为什么要防止文件被篡改? 答案是显然的,为了保证版权,系统安全性等.之前公司开发一个系统,技术核心是一个科学院院士的研究成果,作为一款 ...
- English 介词
English 介词 Create Time : 2019-06-27 表示时间的介词称为时间介词.表示时间的介词有:at, on, in, before, after等. 一.at, on和in ① ...
- nginx的变量系统
本来想写一下nginx的脚本引擎的,但是看起来实在是有点庞大,一时间还不知道该从哪里写比较好.就先写一下他的变量系统吧,这是脚本引擎非常重要的组成部分. 首先为了表述清楚先规定几个术语吧 内置变量:n ...
- 深入了解Redis(7)-缓存穿透,雪崩,击穿
redis作为一个内存数据库,在生产环境中使用会遇到许多问题,特别是像电商系统用来存储热点数据,容易出现缓存穿透,雪崩,击穿等问题.所以实际运用中需要做好前期处理工作. 一.缓存雪崩 1.概念 缓存雪 ...
- MeteoInfoLab脚本示例:CloudSAT Swath HDF数据
读取CloudSAT HDF Swath数据,绘图分上下两部分,上面是时间和高度维的Radar Reflectivity Factor二维图,下面是卫星轨迹图.示例程序: # Add file f = ...