在KeilMDK环境下使用STM32固件库_第1页
在KeilMDK环境下使用STM32固件库_第2页
在KeilMDK环境下使用STM32固件库_第3页
在KeilMDK环境下使用STM32固件库_第4页
在KeilMDK环境下使用STM32固件库_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在 Keil MDK 环境下使用 STM32固件库简介写这篇教程主要是和大家分享使用 STM32的基本方法, 也是给自己学习过程的总结、 记录和 备忘,避免重复学习之前明白但又忘记的知识和操作。我现在也是刚开始接触学习STM32,我是在STM32的固件库 V3 基础上进行学习。在这里我和大家分享一下使用V3.x 库的方法,希望大家喜欢,如有错误请指出。这篇教程分以下几个方面, 一:建立工程, 设置工程属性。 二:建立条理清晰的 GROU;P三: 使用 JLINK 仿真调试。下面就分别逐个说明。一、新建 MDK工程1、首先,打开 MDK软件,再点击 Project- New uVision Pr

2、oject , 如下图所示:弹出如下对话框:新建一个文件夹 MDK工程,然后把工程名字设为 test ,点击保存。 弹出选择器件的对话框, 我们使用的是 stm32 单片机,所以选择 STMicroelectronics 下面的器件,如 STM32F107VCT,6如图 所示:点击 OK,MDK会弹出一个对话框,如图所示:问是否加载启动代码到当前工程下面,如果选择是,则这个启动代码是旧版本库的启动代码, 新版本的启动代码和这个不同, 需要自己添加 在这里我们使用的是新版本的库,所以点击否,自己添加启动代码。启动代码是一段和硬件相关的汇编代码,是必不可少的!这个代码具体如何工作,感兴趣可 以研究

3、一下,现在可以不必关心它。2、接下来我们需要对工程进行一些设置。在工程区,右键点击 Target1 ,选择 Options for Target Target1 如图所示:弹出如下窗口,选择 Output 标签,设置目标文件的生成路径及其他相关参数。如图点击 Select Folder for Objects 在弹出的窗口中点空白处新建“ Obj”文件夹,然后双击 “ Obj” 文件夹,如图中所示的 Path 后,点击 OK.点击 Listing 标签,新建“ list ”文件夹,设置文件的生成路径,及相关参数。如图所示:【友情提示: Obj 和 list 这两个文件夹会保存 Keil 编译连

4、接过程中产生的一些文件,虽然 是一个不起眼的细节但是也请大家关注, 不然在工程目录下面“邋遢”的很, 所以强烈建议创建这两 个文件夹!】点击 Debug标签,选择使用的仿真器,我们使用 JLINK V8 进行仿真调试,对应的,在此选 择 Cortex-M/R J-LINK/J-Trace 。Cortex-M/R J-LINK/J-Trace 前的 Use 要选中,否则 J-LINK 调试会 出问题。如图所示:法。点击右侧的 Setting ,配置 JLINK 下载参数,主要是选择目标处理器系列,添加目标芯片对应的烧写算法。图中要勾选 Reset and Run 选项,如果 Flash Down

5、load 算法不对,请点击 Add 重新添加 Flash 算点击 Utilities ,进行公共参数设置至此,我们已经完成了一个 RVMDK工程参数设置。二、介绍 MDK工程的文件管理方面的功能。我们在使用 ST标准的固件库进行代码设计时,一个工程可能会包含很多的库文件,因此对 文件进行管理就非常的必要。如下图所示,右键点击 Target1 ,选择 Manage Components,进入分类文件管理设置。在弹出的选择框中,可以设置工程名,增加、删减文件夹。以及在某个文件夹添加删除文件在完成以上操作后,一个 MDK工程就设置完成了,只需要依据实际应用要求编写相关代码即可。 【友情提示: Gro

6、ups 下的文件夹不是实际存在的(如果这里的名字跟实际工程中的文件夹同 名也不要以为它是真实的,否则不同名时,你在硬盘中是找不到它们的),只是为了工程管理建立 的。】我个人觉得标准的库文件“埋”的太深, 使用起来有点不方便, 所以我一般对这些文件进行 一些整理,把相关文件放在一起,并取上一个标准化的名字,这些文件夹的名字一般和原始固件库文 件夹的名字相同,只是把需要的文件放在一起。一般在工程目录下面我会建立以下几个文件夹,如图 所示。当然还会建立前面已经建立的两个很有用的文件夹( List 和 Obj ) 自己建立的文件夹和库文件的对应关系:StdPeriph_Driver 文件夹的容与标准库

7、保持一致。STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_DriverStartUp 文件夹的文件在库中的位置:STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xS tartUpCMSIS文件夹的文件在库中的位置:STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x stm32f10x.h , system_stm32f10x.c, system

8、_stm32f10x.hSTM32F10x_StdPeriph_Lib_V3.5.0ibrariesCMSISCM3CoreSupportcore cm3.c, core cm3.hGroups 文件夹的名称和工程文件夹的名称尽量保持一致,如上图所示。为每个 Group 添加 同名文件夹下的源文件或者头文件,为了便于查看代码,我把源文件和头文件都添加进 Group 中(除 StdPeriph_Driver ),在这里注意过滤文件的类型。 StdPeriph_Driver 中只添加需要的源文件,例 如建立一个 LED闪烁的工程,那么这个工程除了进行必要的初始化之外,只需要包含GPIO的操作函数,

9、当然需要使用 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_Driverinc;.User【 重要 】

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论