如何用MDK从零开始创建STM32F2xx工程
答案:2 悬赏:50
解决时间 2021-03-03 10:40
- 提问者网友:送舟行
- 2021-03-02 14:10
如何用MDK从零开始创建STM32F2xx工程
最佳答案
- 二级知识专家网友:白昼之月
- 2021-03-02 15:29
打到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"
然后可以编译通过.
建议用迅雷下载,因为用浏览器下载的话下载到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"
然后可以编译通过.
全部回答
- 1楼网友:鸠书
- 2021-03-02 15:44
你是问有官方固件库创建工程吧?我这里给你说说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.教程结束。讲得比较清楚了吧,还有疑问可以问我。或者联系我,我一步一步教你。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯