5 stm32 stm32f10x.h头文件的主要结构
(1) 库函数配置
通过一些宏定义来配置不同的功能
(2) 数据类型定义
使用typedef定义一些数据类型
(3) 定义了各个外设模块寄存器的结构体
Peripheral_registers_structures
(4) 定义了各个外设模块寄存器基地址
Peripheral_memory_map
(5)定义了每个寄存器中,不同功能位的MASK
Peripheral_Registers_Bits_Definition
其他参考:http://www.cnblogs.com/caihongsheng/p/3513279.html
include "core_cm3.h"STM32的内核是ARM CORTEX-M3,这个core_cm3.h包含的是一些内核相关的函数和宏定义,例如核内寄存器定义、部分核内外设的地址等等,其对应的是core_cm3.c文件。初学可以不管他,只要把它包含进工程里就行了,这里都是非常底层的函数,上层的一些函数直接调用它们了。如果对CORTEX-M3内核有兴趣或者基础较高,想深入了解这些函数,可以仔细研读一下,我们在后续的开讲中会仔细讲解这一个文件的内容。
#include "system_stm32f10x.h" 这个文件就是我们现在所讲的文件了。#include <stdint.h> <stdint.h> 定义了 int16_t 、 uint32_t 、 int64_t 等整型,在需要确定大小的整型时可以使用它们代替 short 、 unsigned long long 等,在 C 整型中,只使用 int 。
/** @addtogroup Exported_types
* @{
*/
/*!< STM32F10x Standard Peripheral Library old types (maintained for legacy purpose) */ 由于新的文件与老的文件会有不兼容问题,所以要转换变量类型。
typedef int32_t s32; typedef 在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。
《变量类型》,3.0以后的版本中使用了CMSIS数据类型,变量的定义有所不同,但是出于兼容旧版本的目的,以上的数据类型仍然兼容。
CMSIS IO类型限定词