已经介绍了过了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入门系列-库目录及文件介绍的更多相关文章

  1. STM32入门系列-库帮助文档使用

    在前面文件夹介绍时,提到了stm32f10x_stdperiph_lib_um.chm文件,此文件是库函数使用帮助文档,可以直接打开如下图. 因为STM32库函数非常多,我们不可能把所有的外设函数都记 ...

  2. Qt快速入门系列教程目录

    Qt快速入门系列教程目录

  3. STM32入门系列-STM32时钟系统,时钟使能配置函数

    之前的推文中说到,当使用一个外设时,必须先使能它的时钟.怎么通过库函数使能时钟呢?如需了解寄存器配置时钟,可以参考<STM32F10x中文参考手册>"复位和时钟控制(RCC)&q ...

  4. STM32入门系列-CMSIS标准

    使用寄存器点亮开发板上LED,这种开发方式显然是不适合大众,对于STM32这样庞大的芯片,内部寄存器实在太多,如果操作的外设比较多,那么就需要花很多时间查询底层寄存器内容,而且即使程序写好,如果要换其 ...

  5. (转载)Linux入门:操作目录和文件的命令

    PATH   每个用户的PATH都是不一样的: PATH中不包含“当前目录”: (1)echo $PATH:显示PATH环境变量: (2)PATH = "$PATH":/home/ ...

  6. STM32入门系列-启动文件介绍

    在启动文件内部使用的都是汇编语言,这个文件的作用是负责执行微控制器从"复位"到"开始执行 main 函数"中间这段启动时间所必须进行的工作.它完成的具体工作有: ...

  7. STM32入门系列-存储器与寄存器介绍

    介绍两部分内容: 什么是存储器映射 什么是寄存器及寄存器映射 为了让大家对存储器与寄存器有一个更清楚的认识,并且为之后使用 C 语言来访问 STM32 寄存器内容打下基础.等明白了如何使用 C 语言封 ...

  8. STM32入门系列-介绍STM32型号与功用

    作为STM32初学者,一般会选择购置一块开发板,因为在开发板上有很多已经集成好的模块,如红外模块.按键模块.LED模块.DAC模块.ADC模块.can模块.485模块.以太网模块.WiFi模块.蜂鸣器 ...

  9. STM32入门系列-GPIO概念介绍

    GPIO(general purpose intput output)是通用输入输出端口的简称,可以通过软件来控制其输入和输出.STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯 ...

随机推荐

  1. 开源 UI 库中,唯一同时实现了大表格虚拟化和树表格的 Table 组件

    背景 有这样一个需求,一位 React Suite(以下简称 rsuite)的用户,他需要一个 Table 组件能够像 Jira Portfolio 一样,支持树形数据,同时需要支持大数据渲染. 截止 ...

  2. Leetcode PHP题解--D125 107. Binary Tree Level Order Traversal II

    val = $value; } * } */ class Solution { private $vals = []; /** * @param TreeNode $root * @return In ...

  3. Power Designer建模之餐饮在线点评系统——需求模型实例

    总览 一级需求 二级需求 管理门户  会员门户 三级需求 系统管理  企业中心  会员中心  统计分析 四级需求

  4. python文档下载

    网址记录:https://docs.python.org/3.6/

  5. 完全小白入门:python的下载和安装

    1. 打开官网www.python.org,选择Downloads

  6. ubuntu20 使用命令安装 rabbitmq

    安装 rabbitmq sudo apt-get install erlang-nox -y sudo apt-get update sudo apt-get install rabbitmq-ser ...

  7. linux网卡驱动程序架构

    以cs89x0网卡驱动为例:

  8. c3算法

    # L(G) = [G] + [O] # G = [O] # = GO # L[E] = EO # L[F] = [F] + [GO] # F = [GO] # = FGO # L[B] = [B] ...

  9. python面试题-django相关

    1.中间件 中间件一般做认证或批量请求处理,django中的中间件,其实是一个类,在请求和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法, 如请求过来 执行process_re ...

  10. Mysql数据库分布式事务XA详解

    XA事务简介 XA 事务的基础是两阶段提交协议.需要有一个事务协调者来保证所有的事务参与者都完成了准备工作(第一阶段).如果协调者收到所有参与者都准备好的消息,就会通知所有的事务都可以提交了(第二阶段 ...