stm32函数库分析
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函数库分析的更多相关文章
- STM32固件库文件分析
STM32固件库文件分析 1.汇编编写的启动文件 startup/stm32f10x.hd.s:设置堆栈指针,设置pc指针,初始化中断向量,配置系统时钟,对用c库函数_main最后去c语言世界里. 2 ...
- STM32启动代码分析 IAR 比较好
stm32启动代码分析 (2012-06-12 09:43:31) 转载▼ 最近开始使用ST的stm32w108芯片(也是一款zigbee芯片).开始看他的启动代码看的晕晕呼呼呼的. 还好在c ...
- 单片机stm32零基础入门之--初识STM32 标准库
CMSIS 标准及库层次关系 因为基于Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难.为了解决不同的芯片厂商生产的Co ...
- 【C++实现python字符串函数库】一:分割函数:split、rsplit
[C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...
- Lua中的常用函数库汇总
lua库函数 这些函数都是Lua编程语言的一部分, 点击这里了解更多. assert(value) - 检查一个值是否为非nil, 若不是则(如果在wow.exe打开调试命令)显示对话框以及输出错误调 ...
- STM32固件库
一.STM32固件库开发和传统寄存器开发方式的区别 二.CMSIS标准 CMSIS标准--Cortex Microcontroller Software Interface Standard,是ARM ...
- linux中C的静态库和动态库分析
从开始学C语言写第一个"hello world"历程到现在,我依然困惑于到底这个程序完整的执行流程是什么样的.不过,现在我正在尝试一点一点的揭开它的面纱.现在,我尝试分析linux ...
- cgic: CGI的C函数库
下载回源码包以后,就3个文件:cgic.c 函数库capture.c 一个很简单的CGI例子,仅仅输出两行提示文字cgictest.c 一个演示读取form表单数据的CGI例子 首先在 ...
- STM32基础问题分析——PWM配置
STM32基础问题分析--PWM配置 在使用STM32F103产生固定频率.固定占空比的PWM波时,虽然有官方以及众多开发板提供的例程,但是关于有点问题并没有说的很清晰,并且<STM32F10X ...
随机推荐
- vue-i18n国际化实例
demo 场景需求分析 需求很简单,左上角 ''网易云音乐''就是一个中英文切换的按钮,点击弹出提示框,确认切换语言后,实现英文版本. 切换成英文版本: 三.实现国际化 1.我们得先有开发环境,先有项 ...
- 纯css画三角形,勾等形状
//三角形 .money-ul li.active:after { content: ""; position: absolute; bottom: 0; right: 0; bo ...
- JS对象原型的理解
基于原型的语言 JavaScript 常被描述为一种基于原型的语言 (prototype-based language)——每个对象拥有一个原型对象,对象以其原型为模板.从原型继承方法和属性.原型对象 ...
- html标签篇(2)
上次讲到<a>标签,并没有细说a标签用法. <!DOCTYPE html> <html lang="en"> <head> < ...
- Express (Routing、Middleware、托管静态文件、view engine 等等)
1. Express 简介 Express 是基于 Node.js 平台,快速.开放.极简的 web 开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用. Express 不对 ...
- 关于echart 图表自适应问题的解决办法
<div id="divEnergy" style="width: 100%; height: 300px; border: 5px solid red; &quo ...
- C语言归并排序
这篇文章是学习了小甲鱼-数据结构与算法结合自考教材编写出的代码,希望自己逐渐在算法造诣上能更上一层楼. 归并排序(递归实现) “归并”一词在中文含义中就是合并的意思,而在数据结构中的定义是将两个或者两 ...
- vim使用方法----转载
转载自:http://www.cnblogs.com/itech/archive/2009/04/17/1438439.html vi/vim 基本使用方法本文介绍了vi (vim)的基本使用方法,但 ...
- HTML 折行br
HTML 折行 如果您希望在不产生一个新段落的情况下进行换行(新行),请使用 <br /> 标签: <p>This is<br />a para<br /&g ...
- 十大创客与微软智能云Azure
由微软举办的“2016年创客先锋—基于微软智能云Azure 的 SaaS 应用软件大赛”已于本周二在中关村圆满落幕.来自全国22家孵化园的创客,历时两个月,开发出百余项基于微软智能云Azure开发的创 ...