本帖最后由 xyzjacky 于 2016-9-28 09:40 编辑
一、型号命名规则
STM32在使用keil编程时,会被要求选择对应芯片的启动文件。
为什么要这样做,因为stm32产品线很多,单是stm32好像都有300多个型号,分成以下几类.
1.有超值型 2.基本型 3.USB型 4.增强型 5.互连型的 当我们选择不同的型号,这个固件库如何使用, 只是一些头文件与包含的文件不同,所以这个固件库,这个工程为了支持这么多型号, 就可通过上图来选择,这个很强大.
下面发一个STM32的产品型号,在官网上可以下载到的造型手册.
上面既然有五大类,那么选择启动文件就要按照其命名规则来看芯片是属于哪一类的:
【命名规则,存储容量】
STM32 F 103 C 6 T 7 xxx
1 2 3 4 5 6 7 8
STM32F103RBT6
第1部分:产品系列名,固定为STM32
第2部分:产品类型;F表示这是Flash产品,目前没有其它选项
第3部分:产品子系列;103表示增强型产品,101表示基本型产品
第4部分:管脚数目;
T=36脚
C=48脚
R=64脚
V=100脚
Z=144脚
第5部分:闪存存储器容量:
6=32K字节
8=64K字节
B=128K字节
C=256K字节
D=384K字节
E=512K字节
第6部分:封装信息;
H=BGA
T=LQFP
U=VFQFPN
第7部分:工作温度范围;
6=工业级,-40~+85°C
7=工业级,-40~+105°C
第8部分:可选项;
此部分可以没有,可以用于标示内部固件版本号。
vl:超值型产品,stm32f100系列
xl:超高密度产品,stm32f101/103系列
ld:低密度产品,FLASH小于64K
md:中等密度产品,FLASH=64 or 128
hd:高密度产品,FLASH大于128
关于STM32容量和功能的直观和全面的介绍请见下表
二、启动文件的配置方法
在keil中可以通过两种方式来配置,这两种方法采用其中一种即可。
1、在头文件stm32f10x.h中通过修改宏定义来配置
上面这张图中有一个宏定义,这个宏定义的作用就是告诉编译器,你选择了哪一种型号的芯片。这段宏定义可以使用的见下:
/* #define STM32F10X_LD */ /*!< STM32F10X_LD: STM32 Low density devices */
/* #define STM32F10X_LD_VL */ /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */
/* #define STM32F10X_MD */ /*!< STM32F10X_MD: STM32 Medium density devices */
/* #define STM32F10X_MD_VL */ /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */
/* #define STM32F10X_HD */ /*!< STM32F10X_HD: STM32 High density devices */
/* #define STM32F10X_HD_VL */ /*!< STM32F10X_HD_VL: STM32 High density value line devices */
/* #define STM32F10X_XL */ /*!< STM32F10X_XL: STM32 XL-density devices */
/* #define STM32F10X_CL */ /*!< STM32F10X_CL: STM32 Connectivity line devices */
所以只要在宏定义出,修改为对应芯片系列的类型就OK了。
例如,我选择了一款芯片是STM32F103C8T6,通过查产品资料,知道它是中等密度的产品,即MD,那么我就把宏定义改为
#ifndef __STM32F10x_MD
#define __STM32F10x_MD
即可。
2、在keil编译器工程设置选项中配置
在keil的工程设置的C/C++选项中去配置
以芯片是STM32F103C8T6为例,在上图红框处,添加STM32F10X_MD即可。填写时,与前面的内容使用半角的逗号相隔。
|