已经介绍了过了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. php 图片转base4的格式

    <?php $url = '1.jpg'; $base64_img = base64_encode(file_get_contents($url));//将图片转base64编码 $imgArr ...

  2. python_购物车

    流程图  实现方式 #!/usr/bin/python3 __author__ = 'beimenchuixue' __blog__ = 'http://www.cnblogs.com/2bjiuji ...

  3. Django_项目开始

    如何初始Django运行环境? 1. 安装python 2. 创建Django项目专用的虚拟环境 http://www.cnblogs.com/2bjiujiu/p/7365876.html 3.进入 ...

  4. ElasticSearch 索引 VS MySQL 索引

    前言 这段时间在维护产品的搜索功能,每次在管理台看到 elasticsearch 这么高效的查询效率我都很好奇他是如何做到的. 这甚至比在我本地使用 MySQL 通过主键的查询速度还快. 为此我搜索了 ...

  5. Java安全之Commons Collections1分析(三)

    Java安全之Commons Collections1分析(三) 0x00 前言 继续来分析cc链,用了前面几篇文章来铺垫了一些知识.在上篇文章里,其实是硬看代码,并没有去调试.因为一直找不到JDK的 ...

  6. cmd备份数据库,还原数据库,仅限于php

    第一:先备份数据库 1.进入cmd(黑盒子) 2.进入phpstudy所在的盘 3.cd E: 3.cd phpstudy; 4.cd PHPTutorial 5.cd mysql; 6.cd bin ...

  7. 学习WebDav

    目录 前言 初识WebDav 有哪些支持webdav的网盘? WebDAV的特性和优势 服务端的搭建 调用WebDav接口 PROPFIND方法 PROPPATCH方法 MKCOL方法 PUT方法 G ...

  8. 在nginx下导出数据库数据

    首先上干货 解决问题 set_time_limit(0); //设置脚本运行时间为不限制 因为php脚本默认时间为30秒 ini_set('memory_limit', -1); //取消脚本运行内存 ...

  9. 一道算法题,引出collections.Counter的特殊用法

    题目描述: 题目编号:1002. 查找常用字符 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表.例如,如果一个字符在每个字符串中出现 3 次, ...

  10. 多测师讲解IDE工具python_001.2pycham_安装

    PyCharm安装使用教程 Pycharm 是目前 Python 语言最好用的集成开发工具. 下载 Pycharm 载时有两种版本选择 Professional(专业版,收费)和Community(社 ...