5--STM32固件库详解
STM32固件库的学习(重要,要常看)

1. stm32的编程中,在stdperiph_drive中添加的misc.c文件是干什么用的啊?因为STM32 V3.5版本的库函数中没有原来版本中单独对于NVIC(中断向量嵌套)的外设驱动,把NVIC的外设驱动放在了misc.c中,实际上是代替原来的stm32f10x_nvic.c。
2. STM32F10XXX V3.5标准外设库文件夹描述标准外设库的第一部分是CMSIS 和STM32F10x_StdPeriph_Driver,CMSIS 是独立于供应商的Cortex-M处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M上操作系统的移植难度,并减少了新入门的微控制器开发者的学习曲线和新产品的上市时间。
STM32F10x_StdPeriph_Driver则包括了分别对应包括了所有外设对应驱动函数,这些驱动函数均使用C语言编写,并提供了统一的易于调用的函数接口,供开发者使用。
Project 文件夹中则包括了ST官方的所有例程和基于不同编译器的项目模板,这些例程是学习和使用STM32的重要参考。
Utilities包含了相关评估板的示例程序和驱动函数,供使用官方评估板的开发者使用,很多驱动函数同样可以作为学习的重要参考。
3.文件功能说明4.CMSIS文件夹结构在实际开发过程中,根据应用程序的需要,可以采取2种方法使用标准外设库(StdPeriph_Lib):(1)使用外设驱动:这时应用程序开发基于外设驱动的API(应用编程接口)。
用户只需要配置文件”stm32f10x_conf.h”,并使用相应的文件”stm32f10x_ppp.h/.c”即可。
(2) 不使用外设驱动:这时应用程序开发基于外设的寄存器结构和位定义文件。
5. STM32F10XXX标准外设库的使用标准外设库中包含了众多的变量定义和功能函数,如果不能了解他们的命名规范和使用规律将会给编程带来很大的麻烦,本节将主要叙述标准外设库中的相关规范,通过这些规范的学习可以更加灵活的使用固件库,同时也将极大增强程序的规范性和易读性,同时标准外设库中的这种规范也值得我们在进行其他相关的开发时使用和借鉴。
STM32固件库使用手册

STM32固件库使用手册随着嵌入式系统在各个领域的越来越广泛的应用,各种芯片和处理器的类型也逐渐增多。
在这些芯片中,ST公司的STM32系列尤其受到了大量开发者们的追捧,其功能强大、性能优越、可编程性高等优点使得其成为了嵌入式系统设计的首选。
在STM32系列芯片中,固件库是其重要的组成部分,提供了独立的硬件抽象层和应用程序接口。
这些功能丰富的API库可用于快速搭建程序架构,以及简便地实现一些常见的操作。
节省开发人员大量的开发时间。
对于初学者,欲了解STM32芯片开发的话,学习STM32固件库的使用是第一步,因此在这里我将分享一些该库的基础内容。
一、固件库的启用在使用STM32固件库之前,我们需要先了解如何启用它。
首先,在安装Keil或IAR等IDE环境后,我们需要将官方提供的固件库下载到本地,并将其解压。
解压后,将库文件夹中的 inc 和src 文件夹添加至Keil或IAR的相关项目目录中,从而ermöglichen 制定了。
接下来,在IDE环境中选择对应的芯片,我们需要设置相关的固件库路径。
具体来说,我们打开Keil或IAR的属性管理器,设置 C/C++ -> Directories 中的 Include Paths 为stm32f10x_stdPeriph_driver/inc,设置配置管理器中的包含路径为上述inc文件夹的全路径。
这样就可以启用了 STM32 固件库,开始进行我们的嵌入式系统开发。
二、基础应用程序在信息时代的今天,眼前各种各样的计算机系统和程序都涌现在眼前。
但是无论是最基础的窗口显示,还是复杂的人脸识别技术,都需要一些基本的芯片和系统支持,而 STM32 芯片就是这一系统之一。
其基础应用程序包括了:GPIO 端口配置:GPIO(PIN)模式配置、输出配置、输入配置。
其中GPIO(PIN)模式配置是对GPIO端口输出模式进行设置,包括推挽、开漏等多种模式,GPIO口的作用是用于输入/输出操作。
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:该头文件包含了所有的中断服务程序函数的原型。
STM32固件库使用手册的中文翻译.

UM0427用户手册32位基于ARM微控制器STM32F101xx与STM32F103xx固件函数库介绍本手册介绍了32位基于ARM微控制器STM32F101xx与STM32F103xx的固件函数库。
该函数库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。
该函数库还包括每一个外设的驱动描述和应用实例。
通过使用本固件函数库,无需深入掌握细节,用户也可以轻松应用每一个外设。
因此,使用本固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。
每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。
每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的结构,函数和参数名称都进行了标准化。
所有的驱动源代码都符合“Strict ANSI-C”标准(项目于范例文件符合扩充ANSI-C标准)。
我们已经把驱动源代码文档化,他们同时兼容MISRA-C 2004标准(根据需要,我们可以提供兼容矩阵)。
由于整个固态函数库按照“Strict ANSI-C”标准编写,它不受不同开发环境的影响。
仅对话启动文件取决于开发环境。
该固态函数库通过校验所有库函数的输入值来实现实时错误检测。
该动态校验提高了软件的鲁棒性。
实时检测适合于用户应用程序的开发和调试。
但这会增加了成本,可以在最终应用程序代码中移去,以优化代码大小和执行速度。
想要了解更多细节,请参阅Section 2.5。
因为该固件库是通用的,并且包括了所有外设的功能,所以应用程序代码的大小和执行速度可能不是最优的。
对大多数应用程序来说,用户可以直接使用之,对于那些在代码大小和执行速度方面有严格要求的应用程序,该固件库驱动程序可以作为如何设置外设的一份参考资料,根据实际需求对其进行调整。
此份固件库用户手册的整体架构如下:⏹定义,文档约定和固态函数库规则。
STM固件库详解

外设中断函数文件
用户可以相应的加入自己的中断程序的代码,对于指向同一个中断向量的多个不同中断请求,用户可以通过判断外设的中断标志位来确定准确的中断源,执行相应的中断服务函数。
stm32f10x_ppp.h
stm32f10x_ppp.c
外设驱动函数文件
包括了相关外设的初始化配置和部分功能应用函数,这部分是进行编程功能实现的重要组成部分。
对一个Cortex-M 微控制系统而言,CMSIS 通过以上三个部分实现了:
l 定义了访问外设寄存器和异常向量的通用方法;
l 定义了核内外设的寄存器名称和核异常向量的名称;
l 为RTOS 核定义了与设备独立的接口,包括Debug 通道。
这样芯片厂商就能专注于对其产品的外设特性进行差异化,并且消除他们对微控制器进
STM32固件库详解
1.1 基于标准外设库的软件开发
1.1.1 STM32标准外设库概述
STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。因此,使用固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的结构,函数和参数名称都进行了标准化。
1.1.3 STM32F10XXX标准外设库结构与文件描述
STM32库

STM32库1、什么是 STM32 库 在 51单⽚机的程序开发中,我们直接配置 51单⽚机的寄存器,控制芯⽚的⼯作⽅式,如中断,定时器等。
配置的时候,我们常常要查阅寄存器表,看⽤到哪些配置位,为了配置某功能,该置 1还是置 0。
这些都是很琐碎的、机械的⼯作,因为 51单⽚机的软件相对来说较简单,⽽且资源很有限,所以可以直接配置寄存器的⽅式来开发。
STM32库是由 ST公司针对 STM32提供的函数接⼝,即 API(Application Program Interface),开发者可调⽤这些函数接⼝来配置STM32的寄存器,使开发⼈员得以脱离最底层的寄存器操作,有开发快速,易于阅读,维护成本低等优点。
当我们调⽤库的 API的时候可以不⽤挖空⼼思去了解库底层的寄存器操作,就像当年我们学习 C语⾔的候,⽤ prinft()函数时只是学习它的使⽤格式,并没有去研究它的源码实现,如⾮必要,可以说是⽼死不相往来。
实际上,库是架设在寄存器与⽤户驱动层之间的代码,向下处理与寄存器直接相关的配置,向上为⽤户提供配置寄存器的接⼝。
库开发⽅式与直接配置寄存器⽅式的区别。
2、为什么采⽤库来开发 对于 STM32,因为外设资源丰富,带来的必然是寄存器的数量和复杂度的增加,这时直接配置寄存器⽅式的缺陷就突显出来了: (1)、开发速度慢 (2)、程序可读性差 这两个缺陷直接影响了开发效率,程序维护成本,交流成本。
库开发⽅式则正好弥补了这两个缺陷。
⽽坚持采⽤直接配置寄存器的⽅式开发的程序员,会列举以下原因: (1)、更直观 (2)、程序运⾏占⽤资源少 初学 STM32的读者,普遍因为第⼀个原因⽽选择以直接配置寄存器的⽅法来学习。
认为这种⽅法直观,能够了解到是配置了哪些寄存器,怎样配置寄存器。
事实上,库函数的底层实现恰恰是直接配置寄存器⽅式的最佳例⼦,想深⼊了解芯⽚是如何⼯作的话,只要追踪到库的最底层实现就能理解,相信你会为它严谨、优美的实现⽅式⽽陶醉。
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的重要参考。
STM32 固件库的使用

2012-03-14 10:40iar for stm32 固件库的学习笔记系统、源程序文件和头文件命名都以“stm32f10x-”作为开头寄存器作为常量处理外设函数的命名以外设的缩写加下划线开头每个单词的开头字母大写每个函数名只有一个下划线分隔外设缩写和函数名的其他部分ppp_Init :::根据PPP_InitTypeDef中指定的参数,初始化外设PPP。
PPP_DeInit::::复位外设PPP的所有寄存器至缺省值PPP_StructInit :::其功能为通过设置PPP_InitTypeDef结构中的各种参数来定义外设的功能PPP_Cmd:::使能或失能外设PPPPPP_ITConfig:::为使能或者失能来自外设PPP某中断源PPP_DMAConfig:::失能或者使能外设PPP的DMA接口用以配置外设功能的函数总是以字符串“Config”结尾PPP_GetFlagStatus:::检查外设PPP某标志位被设置与否PPP_ClearFlag:::清楚外设PPP标志位PPP_GetITStatus:::判断来自外设PPP的中断发生与否PPP_ClearITPendingBit:::清除外设PPP中断待处理标志位typedef signed long s32;typedef signed short s16;typedef signed char s8;typedef signed long const sc32; /* Read Only */typedef signed short const sc16; /* Read Only */typedef signed char const sc8; /* Read Only */typedef volatile signed long vs32;typedef volatile signed short vs16;typedef volatile signed char vs8;typedef volatile signed long const vsc32; /* Read Only */ typedef volatile signed short const vsc16; /* Read Only */ typedef volatile signed char const vsc8; /* Read Only */ typedef unsigned long u32;typedef unsigned short u16;typedef unsigned char u8;typedef unsigned long const uc32; /* Read Only */typedef unsigned short const uc16; /* Read Only */typedef unsigned char const uc8; /* Read Only */typedef volatile unsigned long vu32;typedef volatile unsigned short vu16;typedef volatile unsigned char vu8;typedef volatile unsigned long const vuc32; /* Read Only */ typedef volatile unsigned short const vuc16; /* Read Only */ typedef volatile unsigned char const vuc8; /* Read Only */stm32f10x_type.h文件中布尔型变量typedef enum{FALSE = 0,TRUE = !FALSE} bool;标志位状态类型 SET & RESETtypedef enum{RESET = 0,SET = !RESET} FlagStatus;功能状态类型 ENABLE&DISABLEtypedef enum{DISABLE = 0,ENABLE = !DISABLE} FunctionalState;错误状态类型 SUCCESS or ERRORtypedef enum{ERROR = 0,SUCCESS = !ERROR} ErrorStatus;stm32f10x_map.h文件包含了所有外设控制寄存器的结构,下例为SPI寄存器结构的声明:/*------------------ Serial Peripheral Interface ----------------*/ typedef struct{vu16 CR1;u16 RESERVED0;vu16 CR2;u16 RESERVED1;vu16 SR;u16 RESERVED2;vu16 DR;u16 RESERVED3;vu16 CRCPR;u16 RESERVED4;vu16 RXCRCR;u16 RESERVED5;vu16 TXCRCR;u16 RESERVED6;} SPI_TypeDef;RESERVEDi(i为一个整数索引值)表示被保留区域stm32f10x_map.h函数包含了所有的外设声明,下例为spi外设的声明:#ifndef EXT#Define EXT extern#endif...#define PERIPH_BASE ((u32)0x40000000)#define APB1PERIPH_BASE PERIPH_BASE#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000).../* SPI2 Base Address definition*/#define SPI2_BASE (APB1PERIPH_BASE + 0x3800).../* SPI2 peripheral declaration*/#ifndef DEBUG...#ifdef _SPI2#define SPI2 ((SPI_TypeDef *) SPI2_BASE)#endif /*_SPI2 */...#else /* DEBUG */...#ifdef _SPI2EXT SPI_TypeDef *SPI2;#endif /*_SPI2 */...#endif /* DEBUG */如果用户希望使用外设SPI,那么必须在文件STM32f10x_conf.h中定义_SPI标签例如:#define _SPI#define _SPI1#define _SPI2每个外设都有若干寄存器专门分配给标志位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•
• MDK5向后兼容MDK4和MDK3等,以前的项目同样可以在MDK5上 进行开发(但是头文件方面得全部自己添加), MDK5同时加强了针对 Cortex-M微控制器开发的支持,并且对传统的开发模式和界面进行 升级,MDK5由两个部分组成:MDK Core和Software Packs。其中 ,Software Packs可以独立于工具链进行新芯片支持和中间库的升级 。
• stm32f3xx_rcc.c和stm32f4xx_rcc.h是与RCC相关的一些操作函数,作用主 要是一些时钟的配置和使能。在任何一个STM32工程RCC相关的源文件和头 文件是必须添加的。
• 对于文件stm32f4xx_ppp.c和stm32f4xx_ppp.h,这就是stm32F4标准外设 固件库对应的源文件和头文件。包括一些常用外设GPIO,ADC,USART等。
• \STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPer iph_Driver下面, 将目录下面的src,inc文件夹copy到我们刚才建立 的STM32F10x_FWLib文件夹下面。src中存放的是固件库的.c文件, inc存放的是固件库的.h文件
• • stm32f4xx_it.c,stm32f4xx_it.h以及stm32f4xx_conf.h等文件,我们可以从
\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_ Templates文件夹中找到。这几个文件我们后面新建工程也有用到。 stm32f4xx_it.c和stm32f4xx_it.h里面是用来编写中断服务函数,中断服务函 数也可以随意编写在工程里面的任意一个文件里面。 • stm32f4xx_conf.h是外设驱动配置文件。文件打开可以看到一堆的#include, 这里你建立工程的时候,可以注释掉一些你不用的外设头文件。
STM32固件库详解
STM32标准外设库概述
• STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个 固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外 设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例, 为开发者访问底层硬件提供了一个中间API,通过使用固件函数库, 无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。因 此,使用固态函数库可以大大减少用户的程序编写时间,进而降低开 发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所 有功能。每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的 结构,函数和参数名称都进行了标准化。
• 点击OK,MDK会弹出 Manage RunTime Environment对话框
• 这是MDK5新增的一个功能, 在这个界面,我们可以添加自 己需要的组件,从而方便构建 开发环境,不过这里我们不做 介绍。我们直接点击Cancel, 即可
• 4) 到这里,我们只是建了一个框架,还需要添加启动代码以及.c文件 等。现在我们可以看到USER目录下面包含2个文件夹和2个文件
• 2)打开Keil,点击Keil的菜单 :Project – >New Uvision Project , 然后将目录定位到刚才建立 的文件夹Template之下的 USER子目录,同时,工程取 名为Template之后点击保存 ,我们的工程文件就都保存 到USER文件夹下面。
• 3) 接下来会出现一个选择 Device的界面,就是选择我们 的芯片型号,这里我们定位到
• stm32f4xx.h和system_stm32f4xx.h文件存放在文件夹 • \STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Includ
e下面。
• system_stm32f4xx.h是片上外设接入层系统头文件。主要是申明设置系统及总线时钟相关的 函数。与其对应的源文件system_stm32f4xx.c在目录
Template.uvprojx是工程文件,非常关键,不能轻易删除
Listings和Objects文件夹是MDK自动生成的文件夹,用于存放编译 过程中产生的中间文件。删除这两个文件夹(我们会在下一步骤中新 建一个OBJ文件夹用来存放编译中间文件;当然不删除这两个文件夹 也没有关系)
• 5) 接下来,在Template工程目录下新建3个文件夹CORE、OBJ以及 STM32F10x_FWLib。
• 文件Application.c实际就是说是应用层代码。这个文件名称可以任意取了。 我们工程中,直接取名为main.c。
CMSIS标准软件架构
CMSIS 是独立于供应 商的Cortex-M 处理器 系列硬件抽象层,为芯 片厂商和中间件供应商 提供了简单的处理器软 件接口,简化了软件复 用工作,降低了 Cortex-M 上操作系统 的移植难度,并减少了 新入门的微控制器开发 者的学习曲线和新产品 的上市时间
标准外设库的文件结构
Project:标准外设库驱动实例
STM32F10x_StdPeriph_Driver 标准外设库驱动
Utilities:包含了用于STM32-EVAL评估板的专 用驱动
CMSIS 是独立于供应商的Cortex-M 处理器系 列硬件抽象层,为芯片厂商和中间件供应商提 供了简单的处理器软件接口
• STMicroelectronics下面的 STM32F103ZE。这里我们选择 STMicroelectronics STM32 F4 Series STM32F103 ST M32F103ZE(如果使用的是其 他系列的芯片,选择相应的型 号就可以了。特别注意:一定 要安装对应的器件pack才会显 示这些内容)。
CMSIS分为3个基本功能层: 1) 核内外设访问层:ARM公司提供的访问,定义处理器内部寄存器地址以及功能函数 。 2) 中间件访问层:定义访问中间件的通用API。由ARM提供,芯片厂商根据需要更 新。 3) 外设访问层:定义硬件寄存器的地址以及外设的访问函数。
库文件介绍
MDK5
• MDK源自德国的KEIL公司,是RealView MDK的简称。在全球MDK 被超过10万的嵌入式开发工程师使用。目前最新版本为:MDK5.10 ,该版本使用uVision5 IDE集成开发环境,是目前针对ARM处理器 ,尤其是Cortex M内核处理器的最佳开发工具。
•
• Software Packs(包安装器)又分为:Device(芯片支持), CMSIS(ARM Cortex微控制器软件接口标准)和 Mdidleware(中 间库)三个小部分,通过包安装器,我们可以安装最新的组件,从而 支持新的器件、提供新的设备驱动库以及最新例程等,加速产品开发 进度。
新建基于固件库的工程模板
• 1) 在建立工程之前,我们建议用户在电脑的某个目录下面建立一个 文件夹,后面所建立的工
• 程都可以放在这个文件夹下面,这里我们建立一个文件夹为 Template。这是工程的根目录文件夹。然后为了方便我们存放工程 需要的一些其他文件,这里我们还新建下面子文件夹USER。至于 这些文件夹名字,实际上是可以任取的,我们这样取名只是为了方 便识别。
• 7) 下面我们要将固件库包里面相关的启动文件复制到我们的工程目录 CORE之下。 打开官方固件库包,定位到目录
• \STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\Devic eSupport\ST\STM32F10x\startup\arm下面,将文件 startup_stm32f10x_hd.s复制到CORE目录下面。然后定位到目录 \STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreS upport,将里面的头文件core_cm3.h和core_cm3.h同样复制到 CORE目录下面。
使用标准外设库开发的优势
• 使用标准外设库进行开发最大的优势就在于可以使开发者不用深入了 解底层硬件细节就可以灵活规范的使用每一个外设。标准外设库覆盖 了从GPIO到定时器,再到CAN、I2C、SPI、UART和ADC等等的所 有标准外设。对应的C源代码只是用了最基本的C编程的知识,所有 代码经过严格测试,易于理解和使用,并且配有完整的文档,非常方 便进行二次开发和应用。
• MDK Core又分成四个部分:uVision IDE with Editor(编辑器), ARM C/C++ Compiler(编译器),Pack Installer(包安装器), uVision Debugger with Trace(调试跟踪器)。uVision IDE从 MDK4.7版本开始就加入了代码提示功能和语法动态检测等实用功能 ,相对于以往的IDE改进很大。
• \STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Project\STM32F4xx_StdPeriph_Templates可以 找到。这个里面有一个非常重要的SystemInit()函数申明,这个函数在我们系统启动的时候都 会调用,用来设置系统的整个系统和总线时钟。
标准外设库体系结构
Examples
Template
本文件夹包含了所 有的html页面资源
标准外设库驱动头 文件 标准外设库驱动源 文件 标准外设库驱动的 完整例程 标准外设库驱动的 工程模板