在KeilMDK环境下使用STM32固件库.docx

上传人:b****5 文档编号:12186791 上传时间:2023-04-17 格式:DOCX 页数:12 大小:499.71KB
下载 相关 举报
在KeilMDK环境下使用STM32固件库.docx_第1页
第1页 / 共12页
在KeilMDK环境下使用STM32固件库.docx_第2页
第2页 / 共12页
在KeilMDK环境下使用STM32固件库.docx_第3页
第3页 / 共12页
在KeilMDK环境下使用STM32固件库.docx_第4页
第4页 / 共12页
在KeilMDK环境下使用STM32固件库.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

在KeilMDK环境下使用STM32固件库.docx

《在KeilMDK环境下使用STM32固件库.docx》由会员分享,可在线阅读,更多相关《在KeilMDK环境下使用STM32固件库.docx(12页珍藏版)》请在冰豆网上搜索。

在KeilMDK环境下使用STM32固件库.docx

在KeilMDK环境下使用STM32固件库

在KeilMDK环境下使用STM32固件库

 简介

    写这篇教程主要是和大家分享使用STM32的基本方法,也是给自己学习过程的总结、记录和备忘,避免重复学习之前明白但又忘记的知识和操作。

我现在也是刚开始接触学习STM32,我是在STM32的固件库V3基础上进行学习。

在这里我和大家分享一下使用V3.x库的方法,希望大家喜欢,如有错误请指出。

    这篇教程分以下几个方面,一:

建立工程,设置工程属性。

二:

建立条理清晰的GROUP;三:

使用JLINK仿真调试。

下面就分别逐个说明。

一、新建MDK工程

    1、首先,打开MDK软件,再点击Project->NewuVisionProject…,如下图所示:

弹出如下对话框:

    新建一个文件夹MDK工程,然后把工程名字设为test,点击保存。

弹出选择器件的对话框,

我们使用的是stm32单片机,所以选择STMicroelectronics下面的器件,如STM32F107VCT6,如图所示:

点击OK,MDK会弹出一个对话框,如图所示:

问是否加载启动代码到当前工程下面,

如果选择是,则这个启动代码是旧版本库的启动代码,新版本的启动代码和这个不同,需要自己添加。

在这里我们使用的是新版本的库,所以点击否,自己添加启动代码。

    启动代码是一段和硬件相关的汇编代码,是必不可少的!

这个代码具体如何工作,感兴趣可以研究一下,现在可以不必关心它。

    2、接下来我们需要对工程进行一些设置。

    在工程区,右键点击Target1,选择OptionsforTarget‘Target1’如图所示:

弹出如下窗口,选择Output标签,设置目标文件的生成路径与其他相关参数。

 

如图点击SelectFolderforObjects在弹出的窗口中点空白处新建“Obj”文件夹,然后双击“Obj” 文件夹,如图中所示的Path后,点击OK.

点击Listing标签,新建“list”文件夹,设置文件的生成路径,与相关参数。

如图所示:

    [友情提示:

Obj和list这两个文件夹会保存Keil编译连接过程中产生的一些文件,虽然是一个不起眼的细节但是也请大家关注,不然在工程目录下面“邋遢”的很,所以强烈建议创建这两个文件夹!

]

    点击Debug标签,选择使用的仿真器,我们使用JLINKV8进行仿真调试,对应的,在此选择Cortex-M/RJ-LINK/J-Trace。

Cortex-M/RJ-LINK/J-Trace前的Use要选中,否则J-LINK调试会出问题。

如图所示:

点击右侧的Setting,配置JLINK下载参数,主要是选择目标处理器系列,添加目标芯片对应的烧写算法。

图中要勾选ResetandRun选项,如果FlashDownload算法不对,请点击Add重新添加Flash算法。

    点击Utilities,进行公共参数设置

至此,我们已经完成了一个RVMDK工程参数设置。

二、介绍MDK工程的文件管理方面的功能。

    我们在使用ST标准的固件库进行代码设计时,一个工程可能会包含很多的库文件,因此对文件进行管理就非常的必要。

    如下图所示,右键点击Target1,选择ManageComponents,进入分类文件管理设置。

在弹出的选择框中,可以设置工程名,增加、删减文件夹。

以与在某个文件夹添加删除文件。

在完成以上操作后,一个MDK工程就设置完成了,只需要依据实际应用要求编写相关代码即可。

   [友情提示:

Groups下的文件夹不是实际存在的(如果这里的名字跟实际工程中的文件夹同名也不要以为它是真实的,否则不同名时,你在硬盘中是找不到它们的),只是为了工程管理建立的。

]   

    我个人觉得标准的库文件“埋”的太深,使用起来有点不方便,所以我一般对这些文件进行一些整理,把相关文件放在一起,并取上一个标准化的名字,这些文件夹的名字一般和原始固件库文件夹的名字一样,只是把需要的文件放在一起。

一般在工程目录下面我会建立以下几个文件夹,如图所示。

当然还会建立前面已经建立的两个很有用的文件夹(List和Obj)

自己建立的文件夹和库文件的对应关系:

StdPeriph_Driver文件夹的容与标准库保持一致。

    STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver

StartUp文件夹的文件在库中的位置:

    STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\StartUp

CMSIS文件夹的文件在库中的位置:

    STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

        stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h

    STM32F10x_StdPeriph_Lib_V3.5.0\ibraries\CMSIS\CM3\CoreSupport

        core_cm3.c,core_cm3.h

 

    Groups文件夹的名称和工程文件夹的名称尽量保持一致,如上图所示。

为每个Group添加同名文件夹下的源文件或者头文件,为了便于查看代码,我把源文件和头文件都添加进Group中(除StdPeriph_Driver),在这里注意过滤文件的类型。

StdPeriph_Driver中只添加需要的源文件,例如建立一个LED闪烁的工程,那么这个工程除了进行必要的初始化之外,只需要包含GPIO的操作函数,当然需要使用GPIO就必须要使能GPIO的时钟,RCC是绝对少不了的。

所以只需要包含misc.c,stm32f10x_gpio.c和stm32f10x_rcc.c。

添加需要的文件之后,工程目录如图所示。

 

现在重新说明一下一个工程建立的文件夹:

    MDK工程:

有List和Obj两个文件夹

    CMSIS:

包含系统的核文件

    StartUp:

包含各种启动文件

    User:

用户编写的应用文件

    StdPeriph_Driver:

有src和inc两个文件夹,是标准库提供的源文件和头文件。

 

    当然也有人直接将List和Obj两个文件夹放在User文件夹,然后去掉MDK工程文件夹。

这样也是可以的,看个人爱好了。

我习惯将User文件夹独立出来不放List、Obj和**.uvproj等文件,只放自己编写的应用文件,这样当项目有很多应用文件的时候可以在User建立src和inc两个文件夹存放源文件和头文件,使文件结构看起来更加清晰。

    需要说明的是,虽然在有些Group中包含了一些头文件,但是Keil在编译连接的时侯却不知道头文件在什么地方,所以一定要指定头文件的路径。

[ 重要 ] 指定的头文件为:

..\CMSIS;..\StdPeriph_Driver\inc;..\User

[ 重要 ]两个重要的宏也一定要指定:

USE_STDPERIPH_DRIVER,STM32F10X_MD

三、J-LINK仿真调试。

       [ 强调 ]:

Debug标签,使用JLINKV8进行仿真调试,对应的Cortex-M/RJ-LINK/J-Trace前的Use要选中,否则J-LINK调试会出问题。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1