stm32f4xx.h

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 定义了 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类型限定词

IO类限定词
#define
描述
_I
volatile const
只读访问
_O
volatile
只写访问
_IO
volatile
读和写访问
件库与CMSIS数据类型对比
固件库类型
CMSIS类型
描述
s32
int32_t
易挥发只读有符号32位数据
s16
int16_t
易挥发只读有符号16位数据
s8
int8_t
易挥发只读有符号8位数据
sc32
const int32_t
只读有符号32位数据
sc16
const int16_t
只读有符号16位数据
sc8
const int8_t
只读有符号8位数据
vs32
_IO int32_t
易挥发读写访问有符号32位数据
vs16
_IO int16_t
易挥发读写访问有符号16位数据
参考文献 http://bbs.21ic.com/forum.php?mobile=no&mod=viewthread&page=2&tid=749116

你可能感兴趣的:(C语言,arm)