STM32固件库使用手册的中文翻译

2026/1/21 8:33:58

固件函数库

2.1.2 文件夹Library

文件夹Library包含组成固件函数库核心的所有子文件夹和文件:

? 子文件夹inc包含了固件函数库所需的头文件,用户无需修改该文件夹:

-stm32f10x_type.h:所有其他文件使用的通用数据类型和枚举。 - stm32f10x_map.h:外设存储器映像和寄存器数据结构。 - stm32f10x_lib.h:主头文件夹,包含了其他头文件。

- stm32f10x_ppp.h:每个外设对应一个头文件,包含了该外设使用的函数原形,数据结构和枚举。

- cortexm3_macro.h: 文件cortexm3_macro.s对应的头文件。

? 子文件夹src包含了固件函数库所需的源文件,用户无需修改该文件夹:

-stm32f10x_ppp.c:每个外设对应一个源文件,包含了该外设使用的函数体。 - stm32f10x_lib.c:初始化所有外设的指针。

注:所有代码都按照Strict ANSI-C标准书写,都不受不同软件开发环境的影响。

2.1.3 文件夹Project

文件夹Project包含了一个标准的程序项目模板,包括库文件的编译和所有用户可修改的文件,可用以建立新的工程。

- stm32f10x_conf.h:项目配置头文件,默认为设置了所有的外设。

- stm32f10x_it.c:该源文件包含了所有的中断处理程序(所有的函数体默认为空)。 stm32f10x_it.h:该头文件包含了所有的中断处理程序的原形。 main.c:主函数体

文件夹EWARM,RVMDK,RIDE:用于不同开发环境使用,详情查询各文件夹下的文件readme.txt。

2.2 固件函数库文件描述

Table 2列举和描述了固件函数库使用的所有文件。

固件函数库的体系和文件相互包括的联系表示在Figure 2中。每一个外设都有一个对应的源文件:stm32f10x_ppp.c和一个对应的头文件:stm32f10x_ppp.h。

文件stm32f10x_ppp.c包含了使用外设PPP所需的所有固件函数。提供所有外设一个存储器映像文件stm32f10x_map.h。它包含了所有寄存器的声明,既可以用于Debug模式也可以用于release模式。

头文件stm32f10x_lib.h包含了所有外设头文件的头文件。它是唯一一个用户需要包括在自己应用中的文件,起到应用和库之间界面的作用。

文件stm32f10x_conf.h是唯一一个需要由用户修改的文件。它作为应用和库之间的界面,指定了一系列参数。

译文英文原版为UM0427 Oct. 2007 Rev 2, 译文仅供参考,与英文版冲突的,以英文版为准

固件函数库

Table 2. 固件函数库文件描述 文件名

stm32f10x_conf.h

描述

参数设置文件,起到应用和库之间界面的作用。 用户必须在运行自己的程序前修改该文件。

用户可以利用模板使能或者失能外设。也可以修改外部晶振的参数。 也可以是用该文件在编译前使能Debug或者release模式。

main.c stm32f10x_it.h stm32f10x_it.c

主函数体示例。

头文件,包含所有中断处理函数原形。

外设中断函数文件。

用户可以加入自己的中断程序代码。对于指向同一个中断向量的多个不同中断请 求,可以利用函数通过判断外设的中断标志位来确定准确的中断源。固件函数库 提供了这些函数的名称。

包含了所有外设的头文件的头文件。

它是唯一一个用户需要包括在自己应用中的文件,起到应用和库之间界面的作用。 Debug模式初始化文件。

它包括多个指针的定义,每个指针指向特定外设的首地址,以及在Debug模式被 使能时,被调用的函数的定义。

该文件包含了存储器映像和所有寄存器物理地址的声明,既可以用于Debug模式 也可以用于release模式。所有外设都使用该文件。 通用声明文件。

包含所有外设驱动使用的通用类型和常数。 由C语言编写的外设PPP的驱动源程序文件。

外设PPP的头文件。包含外设PPP函数的定义,和这些函数使用的变量。

stm32f10x_lib.h stm32f10x_lib.c

stm32f10x_map.h

stm32f10x_type.h

stm32f10x_ppp.c stm32f10x_ppp.h

cortexm3_macro.h 文件cortexm3_macro.s的头文件 cortexm3_macro.s Cortex-M3内核特殊指令的指令包装。

译文英文原版为UM0427 Oct. 2007 Rev 2, 译文仅供参考,与英文版冲突的,以英文版为准

固件函数库

Figure 2. 固件函数库文件体系结构

2.3 外设的初始化和设置

本节按步骤描述了如何初始化和设置任意外设。这里PPP代表任意外设。 1.在主应用文件中,声明一个结构PPP_InitTypeDef,例如:

PPP_InitTypeDef PPP_InitStructure;

这里PPP_InitStructure是一个位于内存中的工作变量,用来初始化一个或者多个外设PPP。

2.为变量PPP_InitStructure的各个结构成员填入允许的值。可以采用以下2种方式: a)按照如下程序设置整个结构体 PPP_InitStructure.member1=val1; PPP_InitStructure.member2 = val2; PPP_InitStructure.memberN = valN;

/* where N is the number of the structure members */ 以上步骤可以合并在同一行里,用以优化代码大小: PPP_InitTypeDef PPP_InitStructure = { val1, val2,.., valN}

b)仅设置结构体中的部分成员:这种情况下,用户应当首先调用函数PPP_SturcInit(..)来初始化变量PPP_InitStructure,然后再修改其中需要修改的成员。这样可以保证其他成员的值(多为缺省值)被正确填入。

PPP_StructInit(&PPP_InitStructure); PP_InitStructure.memberX = valX; PPP_InitStructure.memberY = valY;

/*where X and Y are the members the user wants to configure*/

译文英文原版为UM0427 Oct. 2007 Rev 2, 译文仅供参考,与英文版冲突的,以英文版为准

固件函数库

3. 调用函数PPP_Init(..)来初始化外设PPP。

4. 在这一步,外设PPP已被初始化。可以调用函数PPP_Cmd(..)来使能之。

PPP_Cmd(PPP, ENABLE);

可以通过调用一系列函数来使用外设。每个外设都拥有各自的功能函数。更多细节参阅 Section3 外设固件概述。

注:1. 在设置一个外设前,必须调用以下一个函数来使能它的时钟:

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_PPPx, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_PPPx, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_PPPx, ENABLE);

2. 可以调用函数PPP_Deinit(..)来把外设PPP的所有寄存器复位为缺省值:

PPP_DeInit(PPP)

3. 在外设设置完成以后,继续修改它的一些参数,可以参照如下步骤:

PPP_InitStucture.memberX = valX;

PPP_InitStructure.memberY = valY; /* where X and Y are the only members that user wants to modify*/ PPP_Init(PPP, &PPP_InitStructure);

2.4 位段(Bit-Banding)

Cortex?-M3 存储器映像包括两个位段(bit-band)区。这两个位段区将别名存储器区中的每个字映射到位段存储器区的一个位,在别名存储区写入一个字具有对位段区的目标位执行读-改-写操作的相同效果。所有STM32F10x外设寄存器都被映射到一个位段(bit-band)区。这个特性在各个函数中对单个比特进行置1/置0操作时被大量使用,用以减小和优化代码尺寸。

Section 2.4.1和Section 2.4.2给出了外设固件函数库中如何实现位段访问的描述。

2.4.1 映射公式

映射公式给出了别名区中的每个字是如何对应位带区的相应位的,公式如下: bit_word_offset = (byte_offset x 32) + (bit_number × 4) bit_word_addr = bit_band_base + bit_word_offset 其中:

bit_word_offset是目标位在存取器位段区中的位置。

bit_word_addr 是别名存储器区中字的地址,它映射到某个目标位。 bit_band_base 是别名区的起始地址。

byte_offset 是包含目标位的字节在位段里的序号。 bit_number 是目标位所在位置(0-31)。

译文英文原版为UM0427 Oct. 2007 Rev 2, 译文仅供参考,与英文版冲突的,以英文版为准


STM32固件库使用手册的中文翻译.doc 将本文的Word文档下载到电脑
搜索更多关于: STM32固件库使用手册的中文翻译 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219