STM32 固件库的使用(13页).doc
《STM32 固件库的使用(13页).doc》由会员分享,可在线阅读,更多相关《STM32 固件库的使用(13页).doc(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、-STM32 固件库的使用-第 13 页2012-03-14 10:40 iar for stm32 固件库的学习笔记系统、源程序文件和头文件命名都以“stm32f10x-”作为开头寄存器作为常量处理外设函数的命名以外设的缩写加下划线开头 每个单词的开头字母大写每个函数名只有一个下划线分隔外设缩写和函数名的其他部分ppp_Init :根据PPP_InitTypeDef中指定的参数,初始化外设PPP。PPP_DeInit:复位外设PPP的所有寄存器至缺省值PPP_StructInit :其功能为通过设置PPP_InitTypeDef结构中的各种参数来定义外设的功能PPP_Cmd:使能或失能外设P
2、PPPPP_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; typede
3、f 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 */
4、 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 */ t
5、ypedef 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 uns
6、igned char const vuc8; /* Read Only */布尔型变量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
7、 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_Ty
8、peDef; 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
9、_BASE + 0x3800) . /* SPI2 peripheral declaration*/ #ifndef DEBUG . #ifdef _SPI2 #define SPI2 (SPI_TypeDef *) SPI2_BASE) #endif /*_SPI2 */ . #else /* DEBUG */ . #ifdef _SPI2 EXT SPI_TypeDef *SPI2; #endif /*_SPI2 */ . #endif /* DEBUG */ 例如:#define _SPI #define _SPI1 #define _SPI2 每个外设都有若干寄存器专门分配给标志位。我
10、们按照相应的结构定义这些寄存器。标志位的命名,同样遵循上节的外设缩写规范。以PPP_FLAG_开始。对于不同的外设,标志位都被定义在相应的文件stm32f10x_PPP.h中。如果想要进入DEBUG模式的话,必须在文件stm32f10x_conf.h中定义标签DEBUG。这样会在sram的外设结构部分创建一个指针。因此我们可以简化DEBUG过程,并通过转储外设获得所有寄存器的状态。在所有情况下,SPI2都是指向外设SPI2首地址的指针。变量DEBUG可以仿照下例定义:#define DEBUG 1 可以初始化DEBUG模式与文件stm32f10x_lib.c中如下:#ifdef DEBUG v
11、oid debug(void) . #ifdef _SPI2 SPI2 = (SPI_TypeDef *) SPI2_BASE; #endif /*_SPI2 */ . #endif /* DEBUG*/ 注意:DEBUG模式中,宏assert_param被扩展,同时启动运行检错功能,但是会增大代码尺寸,降低代码的运行效率。因此在最终程序中应该删除它们。2固件库:文件夹Examples对应每一个stm32外设,都包含一个子文件夹。这些子文件夹包含了整套文件,组成典型的例子,来示范如何使用对应外设。这些文件有:readme.txt :每个例子的简单描述和使用说明。stm32f10x_conf.h
12、:该头文件设置了所有使用到的外设,有不同的DEFINE语句组成。stm32f10x_it.c :该头文件包含了所有的终端处理程序,如果未使用中断,则所有的函数体都为空stm32f10x.it.h :该都闻见包含了所有的中断处理程序的原型。main.c 例程代码文件夹Library包含组成固件函数库核心的所有子文件夹和文件:子文件夹inc包含了固件函数库所需的头文件,用户无需修改该文件夹stm32f10x_type.h 所有其他文件使用的通用数据类型和枚举 stm32f10x_map.h 外设存储器映像和寄存器数据结构stm32f10x_lib.h 头文件夹,包含了其他头文件stm32f10x_
13、ppp.h 每个外设对应一个头文件,包含了该外设使用的函数原型,数据结构和枚举子文件夹src包含了固件函数库所需要的源文件,用户无需修改该文件夹:stm32f10x_ppp.c :每个外设对应一个源文件,高喊了该外设使用的函数体stm32f10x_lib.c :初始化所有外设的指针文件夹Project高喊了一个标准的程序项目模板,包括库文件的编译和所有用户可以修改的文件,可用以建立新的工程stm32f10x_conf.h 项目配置头文件,默认为设置了所有的外设stm32f10x_it.c 该源文件包含了所有的中断处理程序stm32f10x_it.h 该头文件包含了所有的中断处理程序的原型mai
14、n.c 主函数体stm32f10x_ppp.c对应一个stm32f10x_ppp.h stm32f10x_ppp.c包含了所有 PPP需要的固件函数stm32f10x_map.h 存储器映像文件,包含了所有寄存器的声明,可用于Debug 和release 模式stm32f10x_lib.h 包含所有外设头文件的头文件。他是唯一一个用户需要包括在自己应用中的文件,起到应用和库之间界面的作用。stm32f10x_conf.h 是唯一一个需要用户修改的文件。他作为应用和库之间的连接界面指定了一系列的参数 外设的初始化和设置1:在主应用文件中,声明一个结构PPP_InitTypeDef,例如:PPP_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 固件库的使用13页 固件库 使用 13
限制150内