STM32固件库文件结构及作用详解
STM32固件库V3.3.0的CMSIS文件简析

1CMSIS标准ARM公司于2008年11月12日发布了ARM Cortex微控制器软件接口标准CMSIS 1.0。
CMSIS是独立于供应商的Cortex-M处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间。
根据近期的调查研究,软件开发已经被嵌入式行业公认为最主要的开发成本,图4-1为近年来软件开发与硬件开发花费对比图。
因此,ARM与Atmel、IAR、KEIL、Luminary Micro、Micrium、NXP、SEGGER和ST等诸多芯片和软件工具厂商合作,将所有Cortex芯片厂商的产品的软件接口标准化,制定了CMSIS标准。
此举意在降低软件开发成本,尤其针对进行新设备项目开发或将已有的软件移植到其他芯片厂商提供的基于Cortex处理器的微控制器的情况。
有了该标准,芯片厂商就能够将他们的资源专注于对其产品的外设特性进行差异化,并且能够消除对微控制器进行编程时需要维持的不同的、互相不兼容的标准的需求,从而达到降低开发成本的目的。
如图1软件与硬件开发成本对比图CMSIS的现有标准是CMSIS 2.0,与之前的版本有了一些新的变化。
CMSIS 2.0标准包含Cortex-M0、Cortex-M3、Cortex-M4以及SVD(System View Description)这四部分。
目前,各芯片厂商也还没有都推出各自基于CMSIS标准的完整BSP包。
但未来的Cortex-M处理器应用将统一在CMSIS的标准之下是一个不可避免的趋势。
本节将以STM32F10x处理器为对象,介绍CMSIS 2.0标准的Cortex-M3部分。
4.1.1基于CMSIS标准的软件架构基于CMSIS 2.0标准的软件架构如图4-2所示。
与CMSIS 1.x版本相比,CMSIS 2.0去除了中间层,增加了一个可选的外设访问函数(Access Functions for Peripherals)。
STM32固件库说明

STM32固件库说明
l版本:v2.0.3l发布时间:09/22/2008
l功能::给出了STM32微控制器片内所有外设的驱动函数,使用户把更多的时间花在应用程序的开发上,以加快产品上市时间。
(实质上是将各种寄存
器的参数配置定义成宏,并以结构体的方式给寄存器赋值,这样既方便又易懂)
l特点:
由函数、数据结构和宏组成,包括了微控制器所有外设的功能特征,还包括了每个外设的驱动描述和应用实例按照ANSI-C编写的,不受开发环境的影响,仅启动文件取决于开发环境(即程序和数据在寄存器中是如何配置的得根据所使用的开发环境),非常易于移植。
每个外设驱动都由一组函数组成,这组函
数覆盖了该外设所有功能。
函数和参数名称都进行了标准化(函数名就代表了该函数的功能,即见名可知其义)STM32固件库组成
STM32firmwarelibraryv2.0.3包含如下4个内容
resc;stm32lib_contents.htm;version是对库进行说明的文件
在文件夹STM32F10xFirmwareLibrary(FWLib)下,包含3个文件夹
──文件夹examples
对应STM32的每个外设,都包含一个文件夹,这些子文件夹包含了整套源
文件,来示范如何使用对应外设有:
main.c:例程主函数
stm32f10x_int.c:包含了所有中断服务程序(未使用的中断,则其函数体为空)
stm32f10x_int.h:该头文件包含了所有的中断服务程序函数的原型。
STM32F4xx标准外设固件库

一、标准固件库简介本文下载的是STM32F4xx_DSP_StdPeriph_Lib_V1.5.0,其文件夹如下图所示:其中Project文件夹为各个开发环境(MDK-ARM、EWARM、TrueSTUDIO)的模板工程,Utilities文件夹为官方评估板的标准固件库应用例程,而真正的标准固件库在Libraries文件夹中。
在Libraries文件夹中:CMSIS文件夹主要包含于内核相关的文件;STM32F4xx_StdPeriph_Driver文件夹为STM32F4xx处理器外设相关的底层驱动。
以下为固件库移植时CMSIS文件夹中的重要源文件:core_cm4.h :内核功能的定义,比如NVIC相关寄存器的结构体和Systick配置。
在CMSIS/Include中core_cmFunc.h :内核核心功能接口头文件。
在CMSIS/Include中core_cmInstr.h :包含一些内核核心专用指令。
在CMSIS/Include中core_cmSimd.h :包含与编译器相关的处理。
在CMSIS/Include中stm32f4xx.h :包含了stm32f4的寄存器结构体的定义(类似于c51的reg52.h)。
在CMSIS\Device\ST\STM32F4xx\Include中system_stm32f4xx.h :system_stm32f4xx.c的头文件。
在CMSIS\Device\ST\STM32F4xx\Include中system_stm32f4xx.c :stm32f4的系统时钟配置。
在CMSIS\Device\ST\STM32F4xx\Source\Templates中startup_stm32f40_41xxx.s:启动文件:设定SP的初始值;设置PC的初始值;设置中断向量表的地址;配置时钟;设置堆栈;调用main。
这个启动文件先调用system_stm32f4xx.c里面的systeminit()在调用main()之前。
STM32固件库V3.5.0的CMSIS文件解析

STM32固件库V3.5.0的CMSIS文件解析1.首先选择启动文件:根据自己所用芯片的型号,选择正确的启动文件。
例如选择STM32F107系列的处理器,我们就选择startup_stm32f10x_hd.s。
在这个文件里首先要定义自己堆栈的大小,根据自己的需要确定。
文件中已经定义好了中断向量的位置及堆栈的初始化操作。
/* Reset handler*/Reset_Handler PROCEXPORT Reset_Handler [WEAK]IMPORT __mainIMPORT SystemInitLDR R0, =SystemInitBLX R0LDR R0, =__mainBX R0ENDP通过上面的代码可以看到先执行SystemInit()函数在进入main()函数。
SystemInit()函数在文件system_stm32f10x.c中有定义。
2.stm32f10x.h:这个头文件包含了STM32的大部份定义:①定义了芯片的类型,例如:#define STM32F10X_CL②定义是否包含标准外设库,#defined USE_STDPERIPH_DRIVER③定义外部振荡器频率,#defined HSE_V ALUE上面的三个定义,最好在编译器选项中定义好,这样就不用修改stm32f10x.h文件,最好不要修改这个文件。
④采用枚举的方式定义中断号。
⑤包含core_cm3.h,system_stm32f10x.h。
#include "core_cm3.h"#include "system_stm32f10x.h"#include <stdint.h>⑥定义数据类型,例如:typedef uint32_t u32此外还定义了FlagStatus,ITStatus及ErrorStatus等。
⑦定义外设结构体,地址及用到的常量。
⑧包含stm32f10x_conf.h来配置外设。
STM32 3.5库文件中文说明

STM32库文件1.1.1 STM32标准外设库概述STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。
该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。
因此,使用固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。
每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。
每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的结构,函数和参数名称都进行了标准化。
ST公司2007年10月发布了V1.0版本的固件库,MDK ARM3.22之前的版本均支持该库。
2008年6月发布了V2.0版的固件库,从2008年9月推出的MDK ARM3.23版本至今均使用V2.0版本的固件库。
V3.0以后的版本相对之前的版本改动较大,本书使用目前较新的V3.4版本。
1.1.2 使用标准外设库开发的优势简单的说,使用标准外设库进行开发最大的优势就在于可以使开发者不用深入了解底层硬件细节就可以灵活规范的使用每一个外设。
标准外设库覆盖了从GPIO到定时器,再到CAN、I2C、SPI、UART和ADC等等的所有标准外设。
对应的C源代码只是用了最基本的C编程的知识,所有代码经过严格测试,易于理解和使用,并且配有完整的文档,非常方便进行二次开发和应用。
1.1.3 STM32F10XXX标准外设库结构与文件描述1. 标准外设库的文件结构在上一小节中已经介绍了使用标准外设库的开发的优势,因此对标准外设库的熟悉程度直接影响到程序的编写,下面让我们来认识一下STM32F10XXX的标准外设库。
STM32F10XXX的标准外设库经历众多的更新目前已经更新到最新的3.5版本,开发环境中自带的标准外设库为2.0.3版本,本书中以比较稳定而且较新的V3.4版本为基础介绍标准外设库的结构。
STM32_3.5固件库详解 免费下载

图 5‐3 STM32F10XXX V3.4 标准外设库文件结构 表 5‐4 中介绍了每个文件夹所包含的主要内容。 表 5‐4 STM32F10XXX V3.4 标准外设库文件夹描述
STM32F10x_StdPeriph_Lib_V3.4.0 _htmresc
本文件夹包含了所有的 html 页面资 源
system_stm32f10x.c 文件
函数 Sysem_ExtMemCtl,用来配置外部存储器 控制器。它位于文件 startup_stm32f10x_xx.s /.c,在跳转到 main 前调用 SystemFrequncy,该值代表系统时钟频率
startup_stm32f10x_Xd.s 编译器启动码
微控制器专用的中断处理程序列表(与头文件 一致) 弱定义(Weak)的中断处理程序默认函数(可以 被用户代码覆盖) 该文件是与编译器相关的
STM32固件库文件编程结构思想的理解

在 stm32f10x.h 中
typedef struct {
__IO uint32_t CRL; __IO uint32_t CRH; __IO uint32_t IDR; __IO uint32_t ODR; __IO uint32_t BSRR; __IO uint32_t BRR; __IO uint32_t LCKR; } GPIO_TypeDef; 复制代码
((uint32_t)0x40000000) PERIPH_BASE
(PERIPH_BASE + 0x10000) (00)
(APB2PERIPH_BASE + 0x0800)
小学学的加减法就能把 GPIOA_BASE 算出来,为什么是这么多呢?看 ST 的手册,人家就是要规定这样,没办法。
typedef enum {
GPIO_Speed_10MHz = 1, GPIO_Speed_2MHz, GPIO_Speed_50MHz }GPIOSpeed_TypeDef; 复制代码
要说人性化,ST 还有一点不得不提,那就是位带操作,改变了 写地址-取地址数据-位操作-数据写入地址的操作, 直接改为写地址-数据写入 ,直接位操作。
ST 的编程结构是很值得借鉴的,使得编程序时结构很清晰,脉络很清楚。至于如何去发挥,得看个人水平了
废话不多说,这就带你解剖固件库文件,包你看完之后豁然开朗。 首先,请看一段简单的 C 语言代码 #include <stdio.h>
#define base 0x0012ff60 #define flash ((TestType *)base)
STM32固件库详解

STM32固件库详解1.1 基于标准外设库的软件开发1.1.2 使用标准外设库开发的优势简单的说,使用标准外设库进行开发最大的优势就在于可以使开发者不用深入了解底层硬件细节就可以灵活规范的使用每一个外设。
标准外设库覆盖了从GPIO到定时器,再到CAN、I2C、SPI、UART和ADC等等的所有标准外设。
对应的C源代码只是用了最基本的C编程的知识,所有代码经过严格测试,易于理解和使用,并且配有完整的文档,非常方便进行二次开发和应用。
1.1.3 STM32F10XXX标准外设库结构与文件描述1. 标准外设库的文件结构在上一小节中已经介绍了使用标准外设库的开发的优势,因此对标准外设库的熟悉程度直接影响到程序的编写,下面让我们来认识一下STM32F10XXX的标准外设库。
STM32F10XXX的标准外设库经历众多的更新目前已经更新到最新的3.5版本,开发环境中自带的标准外设库为2.0.3版本,本书中以比较稳定而且较新的V3.4版本为基础介绍标准外设库的结构。
可以从ST的官方网站下载到各种版本的标准外设库,首先看一下3.4版本标准外设库的文件结构,如图5-3所示。
3.0以上版本的文件结构大致相同,每个版本可能略有调整。
标准外设库的第一部分是CMSIS 和STM32F10x_StdPeriph_Driver,CMSIS 是独立于供应商的Cortex-M 处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M 上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间。
STM32F10x_StdPeriph_Driver则包括了分别对应包括了所有外设对应驱动函数,这些驱动函数均使用C语言编写,并提供了统一的易于调用的函数接口,供开发者使用。
Project文件夹中则包括了ST官方的所有例程和基于不同编译器的项目模板,这些例程是学习和使用STM32的重要参考。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STM32标准外设固件库文件结构及用途文件夹树图及文件作用详述stm32f10x_stdperiph_lib_V3.5.0--------------ST 公司针对STM32提供的函数接口├─Release_Notes.html -------------------------官方网页资源├─stm32f10x_stdperiph_lib_um.chm-------------库的帮助文档 ├─stm32f10x_stdperiph_lib_um.chw ├─htmresc -----------------------------------CMSIS 内核和ST 公司Logo │ ├─CMSIS_Logo_Final.jpg │ └─logo.bmp ├─Libraries ----------------------------------固件库 │ ├─CMSIS -Cortex Microcontroller Software Interface Standard(Cortex 内核软件接口标准) │ │ ├─CMSIS debug support.htm ------------官方网页资源 │ │ ├─CMSIS_changes.htm ------------------官方网页资源 │ │ ├─License.doc │ │ ├─CM3 固件库文件夹树形图│ │ │ ├─CoreSupport----为采用Cortex-M3核设计SOC的芯片商设计的芯片外设提供一个进入M3内核的接口│ │ │ │ ├─core_cm3.c│ │ │ │ └─core_cm3.h│ │ │ └─DeviceSupport│ │ │ └─ST│ │ │ └─STM32F10x│ │ │ ├─Release_Notes.html│ │ │ ├─stm32f10x.h --------------------定义寄存器的地址及使用的结构体封装│ │ │ ├─system_stm32f10x.c--------------设备外设访问层,主要配置时钟频率│ │ │ ├─system_stm32f10x.h--------------配置时钟频率相应的头文件│ │ │ └─startup--------由汇编编写的系统启动文件,不同的文件对应不同的芯片型号│ │ │ ├─arm-------ARM编译器启动文件│ │ │ │ ├─startup_stm32f10x_cl.s------cl:互联型产品,stm32f105/107系列│ │ │ │ ├─startup_stm32f10x_hd.s------hd:高密度产品,FLASH大于128│ │ │ │ ├─startup_stm32f10x_hd_vl.s---vl:超值型产品,stm32f100系列│ │ │ │ ├─startup_stm32f10x_ld.s------ld:低密度产品,FLASH小于64K│ │ │ │ ├─startup_stm32f10x_ld_vl.s│ │ │ │ ├─startup_stm32f10x_md.s------md:中等密度产品,FLASH=64 or 128 │ │ │ │ ├─startup_stm32f10x_md_vl.s│ │ │ │ └─startup_stm32f10x_xl.s----xl:超高密度(容量)产品,stm32f101/103系列│ │ │ ├─gcc_ride7………………GCC编译器启动文件│ │ │ ├─iar………………………………IAR编译器启动文件│ │ │ └─TrueSTUDIO……………TrueSTUDIO编译器启动文件│ │ └─Documentation│ │ └─CMSIS_Core.htm --------------CMSIS_Core网页资源│ └─STM32F10x_StdPeriph_Driver-----------CMSIS的设备外设函数,由stm32f10x_ppp.c或 stm32f10x_ppp.h ││文件组成,PPP表示外设名称。
每个外设驱动库函数对应一个头文件| | 和源文件.│ ├─Release_Notes.html│ ├─inc(include缩写)--------------各个外设的头文件│ └─src(source缩写)--------------每个设备外设的驱动程序,这些外设是芯片制造商在Cortex-M3核外加的│ ├─misc.c--------------提供了外设对内核中的NVIC(Nested Vectored Interrupt Controller),| |嵌套向量中断控制器的访问函数│ ├─stm32f10x_adc.c---------------模数转换器│ ├─stm32f10x_bkp.c---------------备份寄存器│ ├─stm32f10x_can.c---------------控制器局域网模块│ ├─stm32f10x_cec.c---------------CEC网络模块│ ├─stm32f10x_crc.c---------------CRC计算单元│ ├─stm32f10x_dac.c---------------数模转换器│ ├─stm32f10x_dbgmcu.c------------调试支持│ ├─stm32f10x_dma.c---------------直接内存存取控制器│ ├─stm32f10x_exti.c--------------外部中断事件控制器│ ├─stm32f10x_flash.c-------------闪存存储器│ ├─stm32f10x_fsmc.c--------------灵活的静态存储器控制器│ ├─stm32f10x_gpio.c--------------通用输入输出│ ├─stm32f10x_i2c.c---------------I2C接口│ ├─stm32f10x_iwdg.c--------------独立看门狗│ ├─stm32f10x_pwr.c---------------电源/功耗控制│ ├─stm32f10x_rcc.c---------------复位与时钟控制器│ ├─stm32f10x_rtc.c---------------实时时钟│ ├─stm32f10x_sdio.c--------------SDIO接口│ ├─stm32f10x_spi.c---------------串行外设接口│ ├─stm32f10x_tim.c---------------定时器│ ├─stm32f10x_usart.c-------------通用同步/异步收发器│ └─stm32f10x_wwdg.c--------------窗口看门狗├─Project│ ├─STM32F10x_StdPeriph_Examples------------------标准外设库驱动的完整例程│ │ ├─Library_Examples.html│ │ ├─Release_Notes.html│ │ ├─ADC---------------------------------------模数转换器│ │ │ ├─3ADCs_DMA│ │ │ ├─ADC1_DMA│ │ │ ├─AnalogWatchdog│ │ │ ├─ExtLinesTrigger│ │ │ ├─RegSimul_DualMode│ │ │ └─TIMTrigger_AutoInjection│ │ ├─BKP---------------------------------------备份寄存器│ │ │ ├─Backup_Data│ │ │ └─Tamper│ │ ├─CAN---------------------------------------控制器局域网模块│ │ │ ├─DualCAN│ │ │ ├─LoopBack│ │ │ └─Networking│ │ ├─CEC---------------------------------------CEC网络模块│ │ │ └─DataExchangeInterrupt│ │ ├─CortexM3│ │ │ ├─BitBand│ │ │ ├─Mode_Privilege│ │ │ └─MPU│ │ │ ├─accesspermission.c│ │ │ ├─main.c│ │ │ ├─main.h│ │ │ ├─readme.txt│ │ │ ├─stm32f10x_conf.h│ │ │ ├─stm32f10x_it.c│ │ │ ├─stm32f10x_it.h│ │ │ ├─system_stm32f10x.c│ │ │ └─Linker│ │ │ ├─RIDE│ │ │ │ └─stm32F_flash_ROAarray.ld│ │ │ └─TrueSTUDIO│ │ │ └─stm32f10x_flash_ROArray.ld│ │ ├─CRC----------------------------------------CRC计数单元│ │ │ └─CRC_Calculation│ │ ├─DAC----------------------------------------数模转换器│ │ │ ├─DualModeDMA_SineWave│ │ │ ├─OneChannel_NoiseWave│ │ │ ├─OneChannelDMA_Escalator│ │ │ └─TwoChannels_TriangleWav e│ │ ├─DMA----------------------------------------直接内存存取控制器│ │ │ ├─Complete list of DMA examples.txt│ │ │ ├─ADC_TIM1│ │ │ ├─FLASH_RAM│ │ │ ├─FSMC│ │ │ ├─I2C_RAM│ │ │ └─SPI_RAM│ │ ├─EXTI---------------------------------------外部中断事件控制器│ │ │ └─EXTI_Config│ │ ├─FLASH--------------------------------------闪存存储器│ │ │ ├─Dual_Boot│ │ │ │ ├─main.c│ │ │ │ ├─main.h│ │ │ │ ├─readme.txt│ │ │ │ ├─stm32f10x_conf.h│ │ │ │ ├─stm32f10x_it.c│ │ │ │ ├─stm32f10x_it.h│ │ │ │ ├─system_stm32f10x.c│ │ │ │ ├─EWARM│ │ │ │ ├─HiTOP│ │ ││ │ ├─STM3210X-XL_BANK1│ │ │ │ │ │ ├─cstart_thumb2.asm│ │ │ │ │ │ ├─setstack.asm│ │ │ │ │ │ ├─STM3210X-XL_BANK1.htp│ │ │ │ │ │ ├─Objects│ │ │ │ │ │ └─Settings││ │ │ │ │ ├─arm_arch.lsl│ │ │ │ │ │ ├─link.lnk│ │ │ │ │ │ ├─reset_appl.scr│ │ │ │ │ │ ├─reset_go_main.scr│ │ │ │ │ │ ├─StartupScript.scr│ │ ││ │ │ └─STM32F10x_XL_Bank1.lsl│ │ │ │ │ └─STM3210X-XL_BANK2│ │ │ │ ├─MDK-ARM│ │ │ │ └─TrueSTUDIO│ │ │ ├─Program│ │ │ └─Write_Protection│ │ ├─FSMC-------------------------------------灵活的静态存储器控制器│ │ │ ├─NAND│ │ │ ├─NOR│ │ │ ├─NOR_CodeExecute│ │ │ │ ├─main.c│ │ │ │ ├─readme.txt│ │ │ │ ├─stm32f10x_conf.h│ │ │ │ ├─stm32f10x_it.c│ │ │ │ ├─stm32f10x_it.h│ │ │ │ ├─system_stm32f10x.c│ │ │ │ └─binary│ │ │ │ ├─FLASH_NOR.ini│ │ │ │ ├─main.c│ │ │ │ ├─readme.txt│ │ │ │ ├─STM3210E-EVAL_NOR.FLM│ │ │ │ ├─stm32f10x_conf.h│ │ │ │ ├─stm32f10x_it.c│ │ │ │ ├─stm32f10x_it.h│ │ │ │ └─system_stm32f10x.c│ │ │ ├─OneNAND│ │ │ ├─SRAM│ │ │ └─SRAM_DataMemory│ │ │ ├─main.c│ │ │ ├─readme.txt│ │ │ ├─stm32f10x_conf.h│ │ │ ├─stm32f10x_it.c│ │ │ ├─stm32f10x_it.h│ │ │ ├─system_stm32f10x.c│ │ │ ├─EWARM│ │ │ │ ├─startup_stm32f10x_hd.s│ │ │ │ ├─startup_stm32f10x_hd_vl.s│ │ │ │ └─startup_stm32f10x_xl.s│ │ │ ├─HiTOP│ │ │ │ └─cstart_thumb2.asm│ │ │ ├─MDK-ARM│ │ │ ├─RIDE│ │ │ └─TrueSTUDIO│ │ ├─GPIO---------------------------------------通用输入输出│ │ │ ├─IOToggle│ │ │ └─JTAG_Remap│ │ ├─I2C----------------------------------------I2C接口│ │ │ ├─EEPROM│ │ │ ├─I2C_TSENSOR│ │ │ └─IOExpander│ │ ├─I2S----------------------------------------I2S(Inter—IC Sound)总线│ │ │ ├─Interrupt│ │ │ └─SPI_I2S_Switch│ │ ├─IWDG---------------------------------------独立看门狗│ │ │ └─IWDG_Reset│ │ ├─Lib_DEBUG│ │ │ └─RunTime_Check│ │ │ ├─main.c│ │ │ ├─readme.txt│ │ │ ├─stm32f10x_conf.h│ │ │ ├─stm32f10x_ip_dbg.c│ │ │ ├─stm32f10x_ip_dbg.h│ │ │ ├─stm32f10x_it.c│ │ │ ├─stm32f10x_it.h│ │ │ └─system_stm32f10x.c│ │ ├─NVIC-----------------嵌套向量中断控制器NVIC(Nested Vectored Interrupt Controller) │ │ │ ├─DMA_WFIMode│ │ │ ├─IRQ_Mask│ │ │ ├─IRQ_Priority│ │ │ └─VectorTable_Relocation│ │ │ ├─main.c│ │ │ ├─main.h│ │ │ ├─readme.txt│ │ │ ├─stm32f10x_conf.h│ │ │ ├─stm32f10x_it.c│ │ │ ├─stm32f10x_it.h│ │ │ ├─system_stm32f10x.c│ │ │ └─linker│ │ │ ├─EWARM│ │ │ │ └─stm32f10x_flash_offset.icf│ │ │ ├─HiTOP│ │ │ │ ├─setstack.asm│ │ │ │ ├─STM32100B-EVAL│ │ │ │ │ ├─link_offset.lnk│ │ │ │ │ └─STM32F10x_offset.ls l│ │ │ │ ├─STM32100E-EVAL│ │ │ │ ├─STM3210B-EVAL│ │ │ │ ├─STM3210C-EVAL│ │ │ │ ├─STM3210E-EVAL│ │ │ │ └─STM3210X-XL│ │ │ ├─RIDE│ │ │ │ └─stm32f10x_flash_offset.ld│ │ │ └─TrueSTUDIO│ │ │ └─stm32f10x_flash_offset.ld│ │ ├─PWR------------------------------------电源/功耗控制│ │ │ ├─PVD│ │ │ ├─STANDBY│ │ │ └─STOP│ │ ├─RCC------------------------------------复位与时钟控制器│ │ │ └─RCC_ClockConfig│ │ ├─RTC------------------------------------实时时钟│ │ │ ├─Calendar│ │ │ └─LSI_Calib│ │ ├─SDIO-----------------------------------SDIO接口│ │ │ └─uSDCard│ │ ├─SPI------------------------------------串口外设接口│ │ │ ├─CRC│ │ │ ├─DMA│ │ │ ├─FullDuplex_SoftNSS││ │ ├─Simplex_Interrupt│ │ │ └─SPI_FLASH│ │ ├─SysTick│ │ │ └─TimeBase│ │ ├─TIM------------------------------------定时器│ │ │ ├─6Steps│ │ │ ├─7PWM_Output│ │ │ ├─Cascade_Synchro│ │ │ ├─ComplementarySignals│ │ │ ├─DMA│ │ │ ├─DMABurst│ │ │ ├─ExtTrigger_Synchro│ │ │ ├─InputCapture│ │ │ ├─OCActive│ │ │ ├─OCInactive│ │ │ ├─OCToggle│ │ │ ├─OnePulse│ │ │ ├─Parallel_Synchro│ │ │ ├─PWM_Input│ │ │ ├─PWM_Output│ │ │ ├─TIM1_Synchro│ │ │ ├─TIM10_PWMOutput│ │ │ ├─TIM15_ComplementarySignals│ │ │ ├─TIM9_OCToggle│ │ │ └─TimeBase│ │ ├─USART----------------------------------通用同步/异步收发器│ │ │ ├─DMA_Interrupt│ │ │ ├─DMA_Polling│ │ │ ├─HalfDuplex│ │ │ ├─HyperTerminal_HwFlowControl│ │ │ ├─HyperTerminal_Interrupt│ │ │ ├─Interrupt│ │ │ ├─IrDA│ │ │ │ ├─Receive│ │ │ │ └─Transmit│ │ │ ├─MultiProcessor│ │ │ ├─Polling│ │ │ ├─Printf│ │ │ ├─Smartcard│ │ │ └─Synchronous│ │ └─WWDG------------------------------------窗口看门狗│ │ └─WWDG_Reset│ └─STM32F10x_StdPeriph_Template----------------官方的一个库工程模板│ ├─main.c----------------------------------用户文件程序入口│ ├─Release_Notes.html│ ├─stm32f10x_conf.h----被包含进stm32f10x.h 文件。