中易网

如何用MDK从零开始创建STM32F2xx工程

答案:2  悬赏:50  
解决时间 2021-03-03 10:40
如何用MDK从零开始创建STM32F2xx工程
最佳答案
打到STM32F2xx Standard Peripherals library,目前最新的版本是V1.1.0,但建议下V1.0.0版本的,因为官网最新版本V1.1.0版本缺少cm3.c文件。
建议用迅雷下载,因为用浏览器下载的话下载到99%的时候就会停止,用迅雷下载就可以下载完。
下载完后解压,如下图:

--STM32F2xx_StdPeriph_Lib_V1.0.0
|--_htmresc
|--Libraries
|--CMSIS
|--STM32F2xx_StdPeriph_Driver
| --Project
|--Utilities
|--Release_Notes.html
|--stm32f2xx_stdperiph_lib_um.chm
|--stm32f2xx_stdperiph_lib_um.chw

第二步:整理工程目录
在你电脑任何地方新建一目录,如APP,然后在APP目录下新建Project和User两目录。
接下来将之前下载并解压出来的标准外设固件库下的Libaries目录拷贝到APP目录下。
然后在Project目录下新建Obj和List两目录。
最后从之前解压的文件中选择一模板源文件复制到User目录下,这里举例为将.\STM32F2xx_StdPeriph_Lib_V1.0.0\Project\STM32F2xx_StdPeriph_Examples\GPIO
目录下的源文件代码复制到Usr目录下。

准备好这些后就可以进行下一步了。
下图显示APP的目录:

第三步:创建MDK工程
打开MDK,点击Project->New uVision Project...,然后弹出一对话框,要你选择工程目录,这里选择到APP/Project,并且将工程取名为Demo,如下图:

点击Save后将弹出一对话框,选择MCU类型,这里从STMicroeletronics下选择STM32F207VC,如下图:

单击OK后弹出一对话框,选择是否让MDK自动生成启动文件startup_stm32f2xx.s到工程,这里因为之前的目前下已有启动文件,因此这里选否。

第四步:添加工程文件
首先将工程将改名为Demo,然后再点击工具栏上的Manage Conponents...按键,如下图红色圈上的部分:

打开如下界面:

接下来就是为工程添加组和源文件了,首先添加四个组:Lib,User,CMSIS,StartUp.
然后为各个组添加源文件:
Lib->添加APP\Libraries\STM32F2xx_StdPeriph_Driver\src下所有源文件,当然后也可以根据需要只选择部分文件。
User->添加APP\User目录下所有源文件,但system_stm32f2xx.c除外,因为此文件在接下来的CMSIS组中将会添加到。
CMSIS->添加APP\Libraries\CMSIS\CM3\CoreSupport目录下的core_cm3.c文件
添加APP\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx目录下的system_stm32f2xx.c文件。
StartUp->添加APP\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx\startup\arm目录下的startup_stm32f2xx.s文件.
这样一来就添加完所有文件了.

第五步:添加头文件
点击工具栏上的Target Options..按钮,如下图红色圈上的部分:

弹出如下对话框,选择C/C++选项卡,在Preprocess Symbols下的Define:栏中加入USE_STDPERIPH_DRIVER宏,在Include Paths下添加包含路径,如下图:
注:宏USE_STDPERIPH_DRIVER在头文件stm32f2xx.h中可以找到,它的含义是打开标准外设固件库,当然后也可以在stm32f2xx.h修改使此宏打开,但不推荐这么做.

其中包含路径都是头文件所有目录,如下图:

然后设置输出目录与列表清单目录.
在Output选项卡下点击Select Folder for Objects..按扭,然后选择APP\Project\Obj目录做为输出目录.
在Listing选项卡下点击Select Folder for Listings...按扭,然后选择APP\Project\List目录做为列表清单目录.
到此时,所有工程设置基本设置完毕,接下来就是编译烧录了.
第六步:编译工程
点击编译,发现有错误,在main.c文件中注释掉#include "stm32_eval.h"就可以了.
//#include "stm32_eval.h"
然后可以编译通过.
全部回答
你是问有官方固件库创建工程吧?我这里给你说说MDK的创建方法,如果你用的时IAR环境也差不多。1.解压stm32f10x_stdperiph_lib.zip可以从ST官方网站免费下载。最新标准库版本为3.5.02.创建一个Demo文件夹2.1新建子文件夹User,用于存放用户源程序2.2新建子文件夹Project,用户KEIL工程文件2.3在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。3.复制源代码到Demo文件夹3.1将stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.1.2Libraries文件整体复制到Demo文件夹下。这就是ST的标准库,是以源代码形式提供的。3.2将库中的演示代码IOToggle中的文件复制到Demo\User文件夹.4.新建一个KeilMDK工程4.1启动KeilMDK,点击菜单NewuVisionProject,然后按向导进行操作4.2选择CPU类型为STM32F103ZE(这是安富莱STM32开发板采用CPU类型)4.3当提示是否复制启动代码时,请选择否。(我们用最新的库中的启动代码,不用Keil软件自带的旧版本启动文件)4.4根据自己的需要修改Target名字。(名字任意)4.5为了便于代码管理,在这个Project下创建几个Group(名字可以任意)User:存放用户自己写的源代码RVMDK:存放启动文件(汇编文件)StdPeriph_Driver:存放ST标准库文件CMSIS:存放CMSIS接口文件(这也是库的一部分)4.6创建好Group后,我们开始依次添加文件。5.修改源代码。我们将修改main.c文件,换成我们自己跑马灯程序。6.配置工程,点击“Options”按钮6.1切换到Output。选择Object文件夹。在CreateHexFile前打钩。6.2切换带Listing。选择Listings文件夹6.3切换到C/C++添加两个预编译宏STM32F10X_HD,USE_STDPERIPH_DRIVER(这是ST库用到了这两个宏)修改Includes路径6.4切换到Debug选择硬件调试器(缺省是软件仿真),我们选择Cortex-M3J-Link调试器再Runtomain前打钩6.4切换到Utilities选额调试器类型,我们选择Cortex-M3J-Link点settings按钮,添加Flash编程算法,我们选择STM32高密度器件,Flash容量512K字节7.配置工程完毕。下面开始编译。8.编译OK,开始调试。9.教程结束。讲得比较清楚了吧,还有疑问可以问我。或者联系我,我一步一步教你。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
连云港东海温泉价格多少呀
沙皇俄国的女皇叫什么名字
苏州同里国旗厂我想知道这个在什么地方
把电动车的48v电池给拆了,发现除了有四块蓄
爱斯芙德怎么去啊,有知道地址的么
不规则的一片子 像牛肚 是什么海产品
天龙PMA1080R纯功放怎么接有源低音炮?
大型管道疏通车价格是多少
摩尔登雅典窗帘生活馆吴川专卖我想知道这个在
中国邮政储蓄银行(莆田汉庭营业所)怎么去啊,
起名,顾哲叫什么名字
濉溪县方正建设工程监理有限公司地址有知道的
为什么亲属关系的人工作不能在一起?
小鹌鹑怎么养啊
娄底世纪新娘跟真真宝贝是一起的吗?
推荐资讯
骆驼夏天去哪了
群利百货地址在什么地方,想过去办事
棉花入眼 长时间不弄出来会怎么样
06款奇瑞老风云现在值多少钱
为什么冬季青藏高原近地面气温低于同纬度地区
cooto电脑主机多少钱
普通充电插头可以给switch充电吗
从珠海南屏到中山古镇怎样坐着
淘宝网店5个钻可以上传多少宝贝拜托各位了 3Q
建设银行卡超过两年没用了,(急),钱能打进
肝上有异物取出算几级伤残
喜满糖囍铺NO.001我想知道这个在什么地方
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?