固件库v3.5使用

固件库v3.5使用

首先下载固件库STM32-v3.50

移植环境:Keil uVision4

1. 固件库目录介绍。

_htmresc:ST(意法半导体)Logo,包含两张图片。

Libraries:外围设备的驱动文件(STM32F10x_StdPeriph_Driver)和重要的系统文件(CMSIS)。两个文件夹的内容稍后介绍。

Project:大量的外设例程和各个软件的工程模版,开发的时候可以在原来的基础上加以修改。其中Kei 模版为MDK-ARM

Utilities:评估板相关文件。

stm32f10x_stdperiph_lib_um.chm:由固件库中的注释生成的帮助文档。

2. 固件库移植。

(1)   建立一个工程文件夹,里面建立相应的目录用来区分文件的类别。

例如:D:\Test

Libraries、User、StartUp、CMSIS、Project

(2)   将固件库中的文件拷贝到上面的相应目录下。

1) 直接拷贝固件库中的Libraries放在Test根目录下,并且将CMSIS中剪切出来直接放在Test目录下,直接成为一个文件夹。并将STM32F10x_StdPeriph_Driver目录下的src和inc文件夹剪切出来放到Libraries目录下。

2) 在CMSIS中, 将CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup中为启动文件,将其剪切出来放到Test根目录下,单独成文一个文件夹,并根据开发板的型号选择相应的启动文件,确定无误后该文件夹中的其他启动文件就可以直接删除了。其他的文件夹的其他文件是重要的系统文件,不要进行移动和修改。

例如:本历程使用的是startup_stm32f10x_hd.s

STM32F10x_LD:STM32小容量产品

STM32F10x_MD:STM32中容量产品

STM32F10x_HD:STM32大容量产品

3) User中放置main()函数,里面加上#include “stm32f10x.h”,另外从stm32\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template中拷贝stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h、

system_stm32f10x.c四个文件。

注意:这四个文件原本应该自己写,但是固件库中已经直接写好了,可以直接使用,后期用到相应的配置需要修改其中的相应文件。另外system_stm32f10x.c在CMSIS中已经存在,但是建议也添加上。

4) Project文件夹中存放项目文件,在Keil中新建一个工程就是将工程文件保存在该文件夹下。在模版文件中可以看到OUTPUT和LISTING文件夹,如果想加上输出信息,可在建立相应文件夹,设置后面介绍。

(3)   到此,文件夹分配结束,下面可以新建一个工程了。

3. 打开软件,新建一个工程,工程名称为Test.

 

 

将其保存在Project目录下。

 

根据开发板选择相应的芯片的型号,实验室使用的是STM32F103ZE,之后点击去“确定”会出现如下界面。

 

注意这里点击“否”,因为固件库中已经含有启动信息,这里是Keil新建工程中自动生成的启动信息。

 

如箭头所示,点击相应的按钮对工程进行配置,添加库文件和库的路径。

 

添加文件时,双击蓝色区域就可以更改目录的名称,在如下的对话框中只要添加“.c”文件

注意:这是的目录结构与前面建立的文件夹没有任何关联,只是在工程中显示。

然后在工程中按照下面的提示的顺序执行。

 

注意:这里是设置编译文件的路径。

 

说明:该工程为当前目录,..\为上一级目录。

如果要生成项目信息,按照下图进行操作。

 

点击“Select Folder for Objects”,在弹出的对话框中选中OUTPUT或者是LISTING文件夹,点击“OK”。

现在编译工程还是有错误的,main()函数中有#include “stm32f10x.h”这是一个重要的系统头文件,之前从固件库中复制的库函数并没有定义好,修改CMSIS\CM3\DeviceSupport\ST\STM32F10x目录下的stm32f10x.h文件,取消0070行对

#define STM32F10X_HD和0105行#define USE_STDPERIPH_DRIVER的注释。

注释:默认情况下,Keil中使用的是固件库v2.03版本,要使用v3.50固件库必须取消对库使用的屏蔽。

现在就可以直接编译工程了。

4. 另外对一些文件进行解释。

core_cm3.c/ core_cm3.c:内核访问层源文件和头文件,代码多数是有汇编语言写成。

stm32f10x.h:外设访问层的头文件。定义了向量、外设寄存器结构体,在应用是只要包含stm32f10x.h即可。

system_stm32f10x.c/h:也是外设访问层源文件和头文件,该文件中定义了系统始终频率,定义了低速总线、高速总线频率,其中SystemInit()做了简单的系统初始化,比如LED流水灯实验不需要进行RCC配置直接就可以使用。

stm32f10x_conf.c/.h:与固件库v2.0没有变化,即外设的选择配置文件,需要使用哪些外设只需要取消对其的注释即可。

Stm32f10x_it.c/.h:这个文件中包含了stm32的中断函数,源文件和头文件中并没有将所有的中断函数列出,其他的中断函数需要自己编写。

编写中断函数可以从启动文件startup_stm32f10x_hd.s中找到相应的设备定义的名称,比如说:UART1的中断函数为UART1_IRQHandler。其他中断函数以此类推。

 

posted @ 2012-07-27 09:32  孩儿家家  阅读(1211)  评论(0编辑  收藏  举报