1.STM32F10x_StdPeriph_Lib_V3.5.0  是库函数的全称

2.libraries里面包含的是函数库.C和.H以及CMSIS部分

3.Project里面包含针对MCU各个模块的实际例子

4.例子里面的文件组织形式如下:

发现里面都包含:stm32f10x_conf.h/stm32f10x_it.c/stm32f10x_it.h/system_stm32f10x.c

5.先说个问题:

我们在选择使用哪些外围的时候,是去更改从官方模版中拷贝过来的stm32f10x_conf.h文
件的27-48行,把我们要用的外围的头文件包含进来,不用的外围的头文件注释掉,但是你
是否发现我们根本没有在用户主程序文件中包含stm32f10x_conf.h这个文件。那我们的修改
这个文件怎么进入主程序文件的呢?答案只有一个,它包含在stm32f10x.h这个文件中,因为
在用户主文件中我们第一句就使用了#include "stm32f10x.h",所以应该是stm32f10x.h这个
文件包含了stm32f10x_conf.h,间接的包含进了用户主程序文件中。

有了上面的认识:我们打开stm32f10x.h在里面搜索stm32f10x_conf.h,发现有:

#ifdef USE_STDPERIPH_DRIVER
#include "stm32f10x_conf.h"
#endif

在keil里面我们可以进行如下设置:

这样包含“stm32f10x.h”时就会包含进 #include "stm32f10x_conf.h"了。

6.stm32f10x.h的路径: E:\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

可见是CMSIS的一部分

7.文件来源:

stm32f10x_conf.h:  拷贝自官方模板,比如上面第4项提到的库里面的例子。

stm32f10x_it.c: 这是包含MCU中断处理函数的;在官方例子里面也有。用到中断必不可少

stm32f10x_it.h:中断头文件

system_stm32f10x.c:仅仅是完成系统时钟的配置。官方例子里面都有包含,可以打开看一下,里面有描述这个文件的作用。

如果不适用任何外设或者用系统时钟做其他用途的话,可以不用stm32f10x_rcc.c;

tm32f10x_rcc.c中的函数不仅仅是完成分频倍频的功能,还有开启外设时钟,检测RCC中断,配置RTC

时钟等功能,不是单单配置一个系统时钟那么简单.

8. STM32F10xxx标准外设库体系结构如图:

各个文件功能说明:

9.本文大部分来源于:http://www.cnblogs.com/emouse/archive/2011/11/29/2268441.html

 

stm32函数库分析的更多相关文章

  1. STM32固件库文件分析

    STM32固件库文件分析 1.汇编编写的启动文件 startup/stm32f10x.hd.s:设置堆栈指针,设置pc指针,初始化中断向量,配置系统时钟,对用c库函数_main最后去c语言世界里. 2 ...

  2. STM32启动代码分析 IAR 比较好

    stm32启动代码分析 (2012-06-12 09:43:31) 转载▼     最近开始使用ST的stm32w108芯片(也是一款zigbee芯片).开始看他的启动代码看的晕晕呼呼呼的. 还好在c ...

  3. 单片机stm32零基础入门之--初识STM32 标准库

    CMSIS 标准及库层次关系 因为基于Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难.为了解决不同的芯片厂商生产的Co ...

  4. 【C++实现python字符串函数库】一:分割函数:split、rsplit

    [C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...

  5. Lua中的常用函数库汇总

    lua库函数 这些函数都是Lua编程语言的一部分, 点击这里了解更多. assert(value) - 检查一个值是否为非nil, 若不是则(如果在wow.exe打开调试命令)显示对话框以及输出错误调 ...

  6. STM32固件库

    一.STM32固件库开发和传统寄存器开发方式的区别 二.CMSIS标准 CMSIS标准--Cortex Microcontroller Software Interface Standard,是ARM ...

  7. linux中C的静态库和动态库分析

    从开始学C语言写第一个"hello world"历程到现在,我依然困惑于到底这个程序完整的执行流程是什么样的.不过,现在我正在尝试一点一点的揭开它的面纱.现在,我尝试分析linux ...

  8. cgic: CGI的C函数库

    下载回源码包以后,就3个文件:cgic.c      函数库capture.c   一个很简单的CGI例子,仅仅输出两行提示文字cgictest.c  一个演示读取form表单数据的CGI例子 首先在 ...

  9. STM32基础问题分析——PWM配置

    STM32基础问题分析--PWM配置 在使用STM32F103产生固定频率.固定占空比的PWM波时,虽然有官方以及众多开发板提供的例程,但是关于有点问题并没有说的很清晰,并且<STM32F10X ...

随机推荐

  1. AngularJS之控制器

    控制器在Angularjs中的作用是增强视图,它实际就是一个函数,用来向视图中的作用域添加额外的功能,我们用它来给作用域对象设置初始状态,并添加自定义行为. 当我们在页面上创建一个控制器时,Angul ...

  2. 洛谷P1072 Hankson 的趣味题(数学)

    题意 题目链接 Sol 充满套路的数学题.. 如果你学过莫比乌斯反演的话不难得到两个等式 \[gcd(\frac{x}{a_1}, \frac{a_0}{a_1}) = 1\] \[gcd(\frac ...

  3. 洛谷P2196 挖地雷(dp)

    题意 题目链接 Sol 早年NOIP的题锅好多啊.. 这题连有向边还是无向边都没说(害的我wa了一遍) 直接\(f[i]\)表示到第\(i\)个点的贡献 转移的时候枚举从哪个点转移而来 然后我就用一个 ...

  4. orcale数据恢复

    在操作数据时,不小心改错了表中的数据,想恢复到之前的数据,则可用以下方法: 1.首先我们需要通过dbms_flashback.get_system_change_number,它可以获取系统当前的SC ...

  5. canvas的Chart图表插件

    今天写页面页面需求到柱状图标,今天介绍一下我所用的Chart.js图表插件 官网:http://www.bootcss.com/p/chart.js/         里面会有下载js文件和中文文档 ...

  6. ArcGIS 编程中对接口的理解

    学习AO,最重要的是理解“接口”这个概念.接口是什么?有什么具体作用?在多种计算机高级语言中,都可以看到“接口”这个术语,但基本上每一本书对“为什么使用接口”等重要文都都“语焉不详”,使得初学者往往不 ...

  7. Qt QDialog将窗体变为顶层窗体(activateWindow(); 和 raise() )

    m_pLoginDlg->hide(); m_pLoginDlg->activateWindow(); //m_pLoginDlg->raise(); m_pLoginDlg-> ...

  8. Maven 安装与使用(一)

    1. 安装 参考:http://maven.apache.org/install.html A. win7环境下,官网下载maven安装文件 B. 解压缩maven文件 C. 确认已配置好JAVA环境 ...

  9. data-* 自定义数据属性 遇到的坑

    除非data-*自定义数据属性的值是固定不变的,否则最好不要把data-*作为查询条件. 例子: <div data-index="0">hello</div&g ...

  10. html select 操作备份

    select动态添加option问题 JS操作:(未验证) 代码 var selid = document.getElementById("sltid"); for(var i=0 ...