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. Js的核心:找到DOM

    掌握 JavaScript 的核心之一:DOM,能够熟悉DOM相关操作,了解JavaScript事件机制 一.使用getElementById().getElementsByTagName().chi ...

  2. csharp: Aspose.Words create table

    /// <summary> /// 20141118 /// Geovin Du /// Aspose.Words创建表 /// </summary> /// <para ...

  3. StringBuffer总结分析

    构造方法 /** * Constructs a string buffer with no characters in it and an * initial capacity of 16 chara ...

  4. Hadoop序列化程序报错

    这个错误指向序列化类,注意实现的Read和Wirte顺序一定要一致,并且要使用基本类型,不要使用包装类. java.lang.Exception: java.io.EOFException at or ...

  5. windows下安装jmeter

    windows下安装jmeter post by rocdk890 / 2012-8-19 16:08 Sunday windows技术 发表评论 JMeter是Apache软件基金会的产品,用于对静 ...

  6. Oracle物化视图详解

    现实工作中会有多个数据源同步到一个数据库完成数据分析的场景,这些数据可以不是实时同步的,我们一般通过定时任务抽取数据到统计分析库给应用使用. 一般的同步方式可以通过时间戳做全量和增量数据同步(存在原数 ...

  7. yii2.0里自己写的源码上传图片

    在做项目过程中,用了源码表单上传, <form action="?r=pre/create" method="post" enctype="mu ...

  8. 移动端开发 rem 案例

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. java native方法及JNI实例

    前言 今天在读java.lang.Object 源码中时发现一个 一个hashCode方法: public native int hashCode() 原因Java很好,使用的人很多.应用极广,但是J ...

  10. 关于Hibernate懒加载问题的最终解决方案

    看到一篇Hibernate懒加载的文章,所以转载,原地址如下: http://tuoxie007.iteye.com/blog/334853 Hibernate的强大之处之一是懒加载功能,可以有效的降 ...