MDK5软件入门

文章目录

    • 一、MDK简介
    • 二、建立STM32工程模板

一、MDK简介

MDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。目前最新版本为:MDK5.14,该版本使用 uVision5 IDE 集成开发环境,是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。

二、建立STM32工程模板

步骤如下:

  1. 在建立工程之前,建议大家在电脑的某个目录下面建立一个文件夹,后面所建立的工程都可以放在这个文件夹下面,这里我们建立一个文件夹为STM32。
    这里写图片描述

  2. 点击 MDK 的菜单:Project –>New Uvision Project ,然后将目录定位到刚才建立的文件夹STM32之下,在这个目录下面建立子文件夹 Project (将代码工程文件都放在 “Project”目录下面,或者用什么单词都可以,看个人喜好了),然后定位到 Project 目录下面,我们的工程文件就都保存到 Project 文件夹下面。工程命名为 Led (这里的名字任凭喜好,大多数喜欢命名为Tempate),点击保存。
    依次按照下图顺序完成。
    这里写图片描述
    这里写图片描述
    这里写图片描述

3)接下来会出现一个选择 CPU 的界面,就是选择我们的芯片型号。如图 3.3.3 所示,因为 STM32F103 所使用的 STM32 型号为 STM32F103ZET6,所以在这里我们选择:
STMicroelectronics - STM32F1 - Series - STM32F103 - STM32F103ZET6,最后点击OK即可。
这里写图片描述
当然上图是针对144引脚,如果是64引脚的芯片之前步骤不变,最后一步换为STM32F103RC即可。
这里写图片描述
特别注意: 一定要安装对应的器件 pack 才会显示这些内
容哦!!

4)点击 OK,MDK 会弹出 Manage Run-Time Environment 对话框:
这里写图片描述
这是 MDK5 新增的一个功能,在这个界面,我们可以添加自己需要的组件,从而方便构建开发环境,不过这里不做介绍。所以我们直接点击 Cancel 即可。随后出现下图界面:
这里写图片描述
到这里,我们还只是建了一个框架,还需要添加启动代码,以及.c 文件等。此时可以看到 Project 文件夹下有两个文件夹和两个文件:
这里写图片描述
这里我们说明一下, Led.uvprojx 是工程文件,非常关键,不能轻易删除。Listings 和 Objects文件夹是 MDK 自动生成的文件夹,用于存放编译过程产生的中间文件。这里,我们把两个文件夹删除,我们会在下一步骤中新建一个 OBJ 文件夹,用来存放编译中间文件。当然,我们不删除这两个文件夹也是没有关系的,只是我们不用它而已。

5)接下来,我们在 Project 工程目录下面,新建 3 个文件夹 CORE, OBJ 以及STM32F10x_FWLib。CORE 用来存放核心文件和启动文件,OBJ 是用来存放编译过程文件以及 hex 文件STM32F10x_FWLib 文件夹顾名思义用来存放 ST 官方提供的库函数源码文件。已有的 USER 目录除了用来放工程文件外,还用来存放主函数文件 main.c,以及其他包括 system_stm32f10x.c 等等。
这里写图片描述
6)下面我们要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。打开官方固件库包,定位到我们之前准备好的固件库包的目录下面,将目录下面的 src,inc 文件夹 copy 到我们刚才建立的 STM32F10x_FWLib 文件夹下面。src 存放的是固件库的.c 文件,inc 存放的是对应的.h 文件。
这里写图片描述
7) 下面我们要将固件库包里面相关的启动文件复制到我们的工程目录 CORE 之下。打开官方固件库包,将文件 core_cm3.c和 文 件 core_cm3.h 复 制 到 CORE 下 面 去 。
然 后将 startup_stm32f10x_hd.s 文件复制到 CORE 下面。
这里写图片描述
8)将三个文件 stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的 Project目录之下。然后将下面的 4 个文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 复制到 Project 目录下面。
这里写图片描述
9) 前面 8 个步骤,我们将需要的固件库相关文件复制到了我们的工程目录下面,下面我们将这些文件加入我们的工程中去。右键点击 Target1,选择 Manage Components。
这里写图片描述
也可直接点击下图红色方框中的图标
这里写图片描述
10) Project Targets一栏,我们将Target名字修改为 Led,然后在Groups一栏删掉一个Source Group1,建立三个 Groups:USER,CORE,FWLIB。然后点击 OK,可以看到我们的 Target
名字以及 Groups 情况。
这里写图片描述
这里写图片描述
11)下面我们往 Group 里面添加我们需要的文件。我们按照步骤 10 的方法, 右键点击点击 Led,选择选择 Manage Components.然后选择需要添加文件的 Group,这里第一步我们选 择 FWLIB , 然 后 点 击 右 边 的 Add Files, 定 位 到 我 们 刚 才 建 立 的 目 录
STM32F10x_FWLib/src 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后 Close.可以看到 Files 列表下面包含我们添加的文件。这里需要说明一下,对于我们写代码,如果我们只用到了其中的某个外设,我们就可以不用添加没有用到的外设的库文件。这里我们全部添加进来是为了后面方便,不用每次添加,当然这样的坏处是工程太大,编译起来速度慢,用户可以自行选择。
这里写图片描述
12)用同样的方法,将 Groups 定位到 CORE 和 USER 下面,添加需要的文件。这里我们的 CORE 下面需要添加的文件为 core_cm3.c,startup_stm32f10x_hd.s ( 注意,默认添加的时候文件类型为.c, 也就是添加 startup_stm32f10x_hd.s 启动文件的时候,你需要选择文件类型为 为 All files 才能看得到这个文件),USER 目录下面需要添加的文件为 main.c,stm32f10x_it.c,system_stm32f10x.c.
这样我们需要添加的文件已经添加到我们的工程中了,最后点击 OK,回到工程主界面。
这里写图片描述
这里写图片描述
最后效果图如下:
这里写图片描述
13) 接下来我们要编译工程,在编译之前我们首先要选择编译中间文件编译后存放目录。方法是点击魔术棒,然后选择“Output”选项下面的“Select folder for objects…”,然后选择目录为我们上面新建的 OBJ 目录。这里大家注意,如果我们不设置 Output 路径,那么默认的编译中间文件存放目录就是 MDK 自动生成的 Objects 目录和 Listings 目录。
这里写图片描述
这里写图片描述
14) 下面我们点击编译按钮,编译工程,可以看到很多报错,因为找不到头文件。
这里写图片描述
15) 下面我们要告诉 MDK,在哪些路径之下搜索需要的头文件,也就是头文件目录。 这里大家要注意,对于任何一个工程,我们都需要把工程中引用到的所有头文件的路径都包含到进来。回到工程主菜单,点击魔术棒 ,出来一个菜单,然后点击 c/c++选项.然后点击
Include Paths 右边的按钮。弹出一个添加 path 的对话框,然后我们将图上面的 3 个目录添加进去。记住,keil 只会在一级目录查找,所以如果你的目录下面还有子目录,记得 path一定要定位到最后一级子目录。然后点击 OK.
这里写图片描述
这里写图片描述
16) 接下来,我们再来编译工程,可以看到又报了很多同样的错误。为什么呢?这是因为 3.5 版本的库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的宏定义变量。按照步骤 16,定位到 c/c++界面,然后填写
“STM32F10X_HD,USE_STDPERIPH_DRIVER”到 Define 输入框里面。这里解释一下,如果你用的是中容量那么 STM32F10X_HD 修改为 STM32F10X_MD,小容量修改为 STM32F10X_LD. 然后点击 OK。
这里写图片描述
17) 这样一个工程模版建立完毕。下面还需要配置,让编译之后能够生成 hex 文件。同样点击魔术棒,进入配置菜单,选择 Output。然后勾上下三个选项。 其中 Create HEX file 是编译生成 hex 文件,Browser Information 是可以查看变量和函数定义。
这里写图片描述
建好工程模板,以后再写程序便可直接复制粘贴使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/256143.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

改进YOLOv5,利用HRNet高分辨率特征金字塔的全新物体检测突破

目录 一、介绍1、物体检测的背景与重要性2、HRNet和YOLOv5的概述(1)HRNet的概述(2)YOLOv5的概述 二、HRNet的架构1、HRNet的基本单元2、HRNet的高分辨率特征金字塔3、HRNet的体系结构4、HRNet的特点5、HRNet的局限性 三、YOLOv5的…

Java学习路线(19)——IO流(下)

一、缓冲流 1、概念: 一种自带缓冲区的字节流、可提高原始字节流、字符流读写数据的性能。 2、缓冲流高性能原理: 磁盘与内存之间有一块存储区域,当磁盘向内存传输数据时,先传输到缓冲区,当缓冲区满了之后&#xff0…

c语言仿宋gb2312字体,仿宋gb2312字体官方下载|仿宋gb2312字体下载官方版 - 维维软件园...

仿宋gb2312字体你要找它吗,最近很多小伙伴在重装系统后发现win7提示没有这款仿宋gb2312字体也没有楷体_GB2312字体了,另外有些PDF可能会提示缺这个仿宋gb2312字体,因此运行软件或打开网页显示的字体非常奇怪,其实这是因为你在安装…

html设置字体仿宋GB2312,Word怎么设置仿宋体显示为仿宋GB2312字体?

做好的Word文档在系统升级后,或更换电脑后,原来设置的字体突然都变了,排版效果全乱,找不出问题在哪,挨个修改,不甚其烦。在经历过这磨难后,我决定刨根问底。才发现原来是XP系统和win7之间字体不…

工程图字体宋体仿宋_设计干货来了!最热门的宋体字要如何设计搭配?

字体设计搭配是一位优秀设计师必须掌握的学问,宋体字作为汉字最常见的一种字形,如何将宋体运用搭配好呢?一流设计网来为您逐一分析。 虽然说宋体字叫做宋体字,但是如果要追溯宋体字的起源,我们还得从唐朝说起。 唐朝时期,佛教在中国开始盛行开来,唐朝皇帝甚至派出唐僧师…

c语言仿宋gb2312字体,gb2312字体下载|仿宋gb2312字体 v2.0 官方版-520下载站

仿宋gb2312字体是一款非常多用户在使用的官方印刷字体,仿宋GB2312字体安装方便,具有工整、笔画均匀的特点,欢迎有需要的用户来本站下载使用。 仿宋gb2312字体基本简介: 仿宋_GB2312字体是印刷字体的一种 ,仿照宋版书上…

c语言仿宋gb2312字体,【仿宋gb2312字体下载】仿宋gb2312字体官方下载 免费版-七喜软件园...

仿宋gb2312字体是Windows系统中很常见使用的一款经典字体,GB2312字体是印刷字体中的一种字体,仿宋gb2312字体就是一种大众常用印刷字体,该字体是模仿宋版书上所刻的字体而形成的一种新型字体,该字体笔画粗细均匀,有长、…

鱼骨图工具

鱼骨图是一个不错的工具,但是真正用好的不多,其实鱼骨图也是一种树状结构,跟功能树类似。 树状结构有一个不好的情况是不能反应影响因子的交集。但是对于大部分情况来说,设计产品也好,工艺分析也好,故障分析…

鱼骨图技能详解+13张精选模板,让你3分钟快速掌握鱼骨图分析法!

鱼骨图看似很简单,其实有很多操作要点,它是一个非定量的工具,可以帮助我们找出引起问题的根本原因,使我们问自己:问题为什么会发生?促使人把目光聚焦于问题的原因,而非问题的症状。 接下来从鱼骨…

利用思维导图软件绘制鱼骨图怎样做

思维导图的类型有哪些? 圆圈图主要用于把一个主题展开来,联想或描述细节。小圈圈是主题,而外面的大圈圈里放的是和这个主题有关的细节或特征气泡图由很多泡泡组成,中间一个主题泡泡描述核心主题,周围的属性泡泡描述关于…

“鱼骨图”勾勒合理ERP项目进度计划

一个好的ERP(Enterprise Resource Planning)项目进度计划是能够保证ERP项目成功实施的关键之一。ERP项目进度计划一般采用里程碑管理,将ERP项目分为五个阶段:项目准备、业务蓝图设计、系统实现、上线准备、上线和上线支持;根据客户的需求制订每一个阶段实施时间。如何为每一…

如何用XMind绘制鱼骨图

鱼骨图因常常被用于问题的分析以及解决方法,所以又被称为因果图。鱼骨图一直是XMind思维导图软件的拿手好戏之一,一直被模仿从未被超越。让我们一起通过本篇文章,探讨XMind鱼骨图的秘密吧。 当你打开XMind思维导图后,就可以在新建…

XMind是怎么绘制鱼骨图

鱼骨图因常常被用于问题的分析以及解决方法,所以又被称为因果图。鱼骨图一直是XMind思维导图软件的拿手好戏之一,一直被模仿从未被超越。让我们一起通过本篇文章,探讨XMind鱼骨图的秘密吧。 当你打开XMind思维导图后,就可以在新建…

C++ vector类成员函数介绍

目录 🤔vector模板介绍: 🤔特点: 🤔vector的成员函数: 🔍vector构造函数: 🔍vector赋值函数 🔍vector容器的判断函数 resize函数的重点内容: …

燃尽图、甘特图、鱼骨图

1. 燃尽图 燃尽图(burn down chart)是在项目完成之前,对需要完成的工作的一种可视化表示。燃尽图有一个Y轴(工作)和X轴(时间)。理想情况下,该图表是一个向下的曲线,随着…

java 鱼刺图_使用java实现鱼刺图

刚毕业了,这是毕业设计的java web项目中的一个功能,使用鱼刺图进行辅助管理,在做的过程中,没有找到国内有公开的研究资料,不管是哪一种语言,所以就自己做了一个java的鱼刺图生成插件,虽然毕业设…

燃尽图,甘特图,鱼骨图

1. 燃尽图 燃尽图(burn down chart)是在项目完成之前,对需要完成的工作的一种可视化表示。燃尽图有一个Y轴(工作)和X轴(时间)。理想情况下,该图表是一个向下的曲线,随着…

1500_什么是鱼骨图以及鱼骨图如何使用

全部学习汇总: GreyZhang/g_project_management: some knowledge about project management. (github.com) 鱼骨图在过去多年的工作中我是看到过的,但是相关的工作中其实一直没有接触到。我所遇到的问题,一般也不到了需要总结分析的程度。这对…

如何有效理清对象间逻辑关系?XMind鱼骨图帮你轻松搞定!

从效果开始,鱼骨图的每个分支都代表问题的一个原因。主分支显示所有可能的原因,而子分支则在背后挖掘“为什么”。因此,鱼骨图也被称为“因果图”。 鱼骨图有何用呢? 鱼骨图是逻辑图的派生。他们看起来很相似。鱼骨是分析问题的思…

大咖驾到!5A学霸教你如何使用鱼骨图解决项目难题

在船舶制造行业从业9年,并以5A的好成绩完美通过PMP考试的学霸来了! 小编今天邀请到了1903级的学员刘艺为大家讲解鱼骨图在实际生活中的应用,来跟着我们一起学习用鱼骨图来分析项目运行过程中出现的问题吧。 个人介绍 INTRODUCTION 我所在…