STM32开发-MDK新建工程及配置
本人也是接触stm32没多久,之前用的MDK是5.1,现在用的是5.13,MDK5.0之前的版本(本人简称旧版)和之后的版本(本人简称新版)新建工程有很大区别。对于刚开始用学stm32的新手来说,基本上stm32 的视频教程,都是使用的旧版MDK,如果新手直接安装的是新版的MDK的话,往往总是会有一些困惑。 本人深有作为新手刚入手MDK5.13时新建工程的困惑感受,特地发了该贴,以图文并茂的方式,详述了MDK5.13新建工程的步骤,只希望大家一起分享、学习,若有不足之处,望各位大大指正,谢谢!
1、新建一个文件夹,作为工程保存的地方,本人已Temp为例
2、打开MDK5.13,点击pack installer,会弹出一个欢迎的界面,直接点击OK

然后在pack installer界面的右边search栏,搜索你的芯片型号,以stm32f103c8为例,device栏里面会显示stm32f103c8的信息
用鼠标左键单击选中,然后在pack installer左边的pack栏里面会出现对应的安装包(KEIL:STM32F1xx_DFP),直接点击旁边的install按钮,就可安装该芯片系列的固件库。
安装完后,直接关掉该界面,然后进入MDK界面,若出现有更新的提示,直接点击确定。
3、点击project--new u_vision project新建工程,输入工程名,以Temp为例

4、出现选择芯片型号的界面,在search栏里面直接输入你的芯片型号,在下方就会自动显示出来,左键单击选中,然后点击OK
注意:如果没搜到,是因为没有安装该芯片的固件库 安装方法上面已经给出,也可下载双击运行安装

5、然后会弹出manage run -time environment的运行环境界面,必须选择的有CMSIS下的core和device下的startup,至于其它的根据你需要的外设,在stdperiph Driver里面选择相应的外设驱动,比如ADC、GPIO等
需要注意的是,在配置运行环境时,正确配置时,打钩的地方是绿色。未正确配置的话,打钩的地方是黄色。因为往往你选择一个配置,一般还需要选择另外的几个配置配合才能正确配置。比如你要用到外设GPIO,选择GPIO后,选择区域会变成黄色,表示你没有正确配置,还需要选择其他的几个配置来配合,此时下方会出现还需要选中那几个配置的提示信息,按照提示选择即可
选择外设GPIO,下方提示你还需要选择framework和RCC
注意左下角的Resolve,它可以帮助你一键选中关联项
按照提示选择后,所有打钩的地方都变成绿色,表示已正确配置。
6、接下来,回到了MDK5.13界面,在左边工程目录下,我们已经添加了一些刚才我们配置的文件,包括启动文件以及一些外设驱动文件,此时我们打开我们的工程目录文件夹,发现MDK已经自动为我们建立了几个文件夹
然后我们新建一个文件夹user(可任意命名),用来存放用于自己添加的源文件和头文件
7、新建一个源文件,命名为main.c,然后保存到user文件夹里面,以后只要是用于自己新建的.c文件和.h文件都放在这个文件夹下
8、右键点击MDK5.13左边的工程Target1,选择manage Project Items,在弹出的界面中,可以自己更改工程名,和源文件组名,分别双击Target1和source groups即可更改
并点击add files添加新文件到源文件组里面,以之前新建的main.c为例。

9、点击options for target,配置MDK
注意:晶振参数取决于具体的板子





10 配置MDK的自动索引功能,点击MDK菜单Edit下的configuration

本文转自:http://www.stmcu.org/module/forum/thread-600249-1-1.html
注:仅用于个人学习
STM32开发-MDK新建工程及配置的更多相关文章
- STM32开发环境--使用MDK建立一个工程
STM32开发环境--使用MDK建立一个工程 该工程模版是基于库函数基础制作而成,其中有借鉴相关资料.虽然工程模版一旦建立,以后任何项目只需套用即可,但考虑到长时间不使用,在将来某天可能会突然用到,再 ...
- Linux下STM32开发环境的搭建
目录 一.概述 1.目的 2.开发环境描述 3.Eclipse构建的STM32集成开发环境结构 4.GDB / GDB Server 调试模型 二.搭建步骤 三.详细的搭建过程 1.安装eclipse ...
- stm32开发之标准库的介绍
1 STM32标准外设库概述 STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序.数据结构和宏组成,包括了微控制器所有外设的性能特征.该函数库还包括每一个外设的驱动描 ...
- STM32开发(一):简介及开发环境
1. 背景 STM32是意法(ST)公司开发的基于ARM Cortex-M系列的一系列微控制器(MCU). 有两种库 标准外设库(StdPeriph_Driver.Standard Periphera ...
- windows下STM32开发环境的搭建
一.概述 1.说明 笔者已经写了一篇Linux下STM32开发环境的搭建 ,这两篇文章的最区别在于开发环境所处的系统平台不一样,而其实这个区别对于开发环境的搭建其实影响不大,制作局部上的操作上发生了改 ...
- ubuntu linux下建立stm32开发环境: 程序烧录 openocd+openjtag
原文出处: http://blog.csdn.net/embbnux/article/details/17619621 之前建立stm32开发环境,程序也已经编译好生成main.bin,接下来就是要把 ...
- ubuntu下安装stm32开发环境
在windowns下开发stm32刚开始学最烦的就是创建工程模板,都不知道为什么要那样设置,而且步骤繁多.现在我告诉大家一个好消息,在linux下配置stm32开发环境包括创建工程,使用JLink仿真 ...
- 转载:百为STM32开发板教程之十二——NAND FLASH
http://bbs.21ic.com/icview-586200-1-1.html 百为STM32开发板教程之十二——NAND FLASH 参考资料:百为stm32开发板光盘V3\百为stm32开发 ...
- 转载:百为STM32开发板教程之十一——NOR FLASH
转载:http://bbs.21ic.com/icview-586199-1-1.html 百为STM32开发板教程之十一——NOR FLASH 参考文档:百为stm32开发板光盘\st官方参考资料\ ...
随机推荐
- Luogu P1471 方差 线段树
那是上上周...也是重构了四遍...后来GG了...今天又拾起,搞了搞终于过了... 好吧就是个线段树,公式懒得推了https://www.cnblogs.com/Jackpei/p/10693561 ...
- ZOJ3068(01分数规划)
本是POJ2976,喜闻乐见的01规划入门题.POJ日常假死,到ZOJ测. 二分答案. 试了试数据好像没问题,\(a_i\)总是小于\(b_i\)且最终预答案l都小于1.然而为什么我把r设成1e10往 ...
- django 自带的验证功能
django.contrib.auth提供了很多验证方法 authenticate(): 提供了用户认证,在自带的数据库表中验证用户名和密码,需要username和password两个关键字参数 如果 ...
- dynamic:动态类型简单用法,写法
class 动态创建数据 { //动态类型:本质感觉跟object的用法差不多,只是在执行的时候才知道数据类型 public dynamic Dynamic() { //定义一个动态类型,作为返回值 ...
- 21-----BBS论坛
BBS论坛(二十一) 21.1.编辑轮播图功能完成 (1)cms_banners.html 把属性绑定到<tr>上面,方便找到各属性的值 <tbody> {% for bann ...
- java——最大堆 MaxHeap
使用数组来实现最大堆 堆是平衡二叉树 import Date_pacage.Array; public class MaxHeap<E extends Comparable <E>& ...
- web三大组件
1.Servlet Servlet是用来处理客户端请求的动态资源,也就是当我们在浏览器中键入一个地址回车跳转后,请求就会被发送到对应的Servlet上进行处理. Servlet的任务有: 接收请求数据 ...
- Huawei English Corner
Keywords Descriptions FWIW For what it's worth(不管结果怎样) ASAP As Soon As Possible(尽快) FYI For ...
- java.lang.IllegalArgumentException: Page directive: invalid value for import 问题处理
1.问题说明: 项目原来用的tomcat版本是apache-tomcat-6.0,后来为了安全原因将版本升至apache-tomcat-7.0,发现有的jsp页面出现下面的异常: java.lang. ...
- jQuery的实现编码,解决特殊字符 <script> "
function htmlEncode(value){ if (value) { return jQuery('<div />').text(value).html(); } else { ...