STM32 MDK 工程创建 图解步骤 自我学习总结
2014-11-05 11:03
585 查看
好久没有使用MDK编写STM32的程序了,现在上手才发现自己都不太记得创建步骤了,于是再次翻阅书籍,一步一步记录一下-----参考了野火的例子!
---第一步---创建一个文件夹---在文件夹下建立如下文件夹---
![](http://img.blog.csdn.net/20141105110557156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
---1-1---其中CMSIS是用来存放库文件为我们自带的启动文件和一些CMSIS层文件。
[b]
![](http://img.blog.csdn.net/20141105111615354?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
----1-1-1-----上面说的启动文件在startup文件夹中,其中包含了各种STM32芯片的启动文件,主要是按照flash大小来分的,后面工程设置再介绍。
[b]
![](http://img.blog.csdn.net/20141105111843320?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
---1-2---其中FWlib是用来存放STM32库中inc与src两个文件夹---这两个文件夹不需要修改----inc中是所有驱动文件的头文件---src中是所有驱动的驱动源文件。
![](http://img.blog.csdn.net/20141105111956218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
----1-2-1-----inc为头文件---------
![](http://img.blog.csdn.net/20141105112023550?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
----1-2-2-----src为源文件---------
![](http://img.blog.csdn.net/20141105111946079?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
---1-3---其中Output是用来保存软件编译后要输出的文件,这里专门指定一个文件夹是为了便于管理,不然它会默认保存到保存工程的文件夹中,暂无内容。
---1-4---其中Listing是用来保存编译后生成的链接文件,原因也是同上[b],暂无内容![/b]
---1-5---其中USER文件夹是比较重要的,它是直接存放我们用户自己编写的用户层代码---比如main.c主函数。
----1-5-1-----这里包含有------头文件与源文件----最重要的是main.c与stm32f10x_it.c与stm32f10x_it.h----其它文件都是用户自己编写的代码,然后加入工程去的!
![](http://img.blog.csdn.net/20141105112317171?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
---1-6---最后是PORT是用来单独保存工程文件的,它是要在后面创建工程后才有内容的。
---第二步是创建工程,并且将工程需要的文件加入工程!---
---2-1---新建工程------
![](http://img.blog.csdn.net/20141105112811879?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
----2-1-1-----将新建工程保存在文件夹下的PORT文件夹中---------
![](http://img.blog.csdn.net/20141105112905371?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
----[b]2-1-2-----为工程选址驱动芯片---STM32系列的--------[/b]
![](http://img.blog.csdn.net/20141105113021890?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
----[b]2-1-3-----这里选择STM32F103ZE---------[/b]
[b]
![](http://img.blog.csdn.net/20141105113256171?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
-----[b]2-1-4----确定之后会弹出一个对话框,意思是问你是否需要将工程提供给你的自带启动文件加入工程,这里我们使用前面自己复制的启动文件,故选择---否---![/b]
[b]
![](http://img.blog.csdn.net/20141105113417918?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
----[b]2-1-5-----这就新建好了一个空白的工程文件---在PORT文件夹下可以看到,有内容了![/b]
![](http://img.blog.csdn.net/20141105113736413?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
---2-2---为新建的工程添加文件------
----2-2-1-----右键选择进入组件管理器---------
![](http://img.blog.csdn.net/20141105114037656?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
-----2-2-2----组件管理器中可以新建文件夹,修改文件夹名,并且为相应文件夹添加前面保存在相应文件夹下的文件----比如启动文件,驱动源文件等---------
![](http://img.blog.csdn.net/20141105114253327?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
---------完成添加修改后,如下---------
![](http://img.blog.csdn.net/20141105114338021?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
----2-2-3-----最后完成,在主界面上可以看到那些添加的文件夹和文件---------
![](http://img.blog.csdn.net/20141105114728531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20141105114706422?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
---2-3---工程新建好了,文件添加了,现在就来配置一下工程,主要是包含头文件路径等等操作。
![](http://img.blog.csdn.net/20141105114829040?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
-----2-3-1----第一次进入设置界面---------不需要设置,直接退出后再次进入!----
![](http://img.blog.csdn.net/20141105114937828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
----[b]2-3-2-----第二次进入设置界面-----[/b]
![](http://img.blog.csdn.net/20141105114930410?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[b]------2-3-3------设置Target---主要是勾选下图中的Use
MicroLIB项---它的目的就是允许使用自带的C库----比如printf等函数。
[/b]
[b]
![](http://img.blog.csdn.net/20141105222528265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
------[b]2-3-4------设置Output路径---[/b]
![](http://img.blog.csdn.net/20141105115040688?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20141105115054401?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
------[b]2-3-5------设置编译时生成HEX可执行文件---勾选第二项。[/b]
![](http://img.blog.csdn.net/20141105115223680?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
-----[b]2-3-6----设置Listing路径---[/b]
[b]
![](http://img.blog.csdn.net/20141105115341524?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
[b]
![](http://img.blog.csdn.net/20141105115356250?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
-----2-3-7----设置C/C++项---添加如下内容---STM32F10X_HD,
USE_STDPERIPH_DRIVER------其中STM32F10X_HD代表使用的芯片是大容量,这里有一点要说么,不管我们使用什么容量的芯片,只要填写这个大容量的标识就可以,但是在程序中就不要使用小容量芯片没有的功能。其中[b]USE_STDPERIPH_DRIVER表示我们可以使用ST官方库。[/b]
[b]
![](http://img.blog.csdn.net/20141105115529195?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
[b]----[b]2-3-8-----设置C/C++项---添加文件路径----最后完成OK----[/b]
[/b]
[b]
![](http://img.blog.csdn.net/20141105115515062?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
[b]
![](http://img.blog.csdn.net/20141105115738812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
[b]
![](http://img.blog.csdn.net/20141105115751515?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
[b]---第三步是编译main.c文件----最简单的主函数----[/b]
[b]
![](http://img.blog.csdn.net/20141105115905546?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
[b]---第四步是编译,检查是否有错误---一般使用中间这个---[/b]
[b]
![](http://img.blog.csdn.net/20141105115956703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
[b]------无错误,且生成了HEX文件------[/b]
[b]
![](http://img.blog.csdn.net/20141105120002211?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFVYVUVDSEVO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
---第一步---创建一个文件夹---在文件夹下建立如下文件夹---
---1-1---其中CMSIS是用来存放库文件为我们自带的启动文件和一些CMSIS层文件。
[b]
[/b]
----1-1-1-----上面说的启动文件在startup文件夹中,其中包含了各种STM32芯片的启动文件,主要是按照flash大小来分的,后面工程设置再介绍。
[b]
[/b]
---1-2---其中FWlib是用来存放STM32库中inc与src两个文件夹---这两个文件夹不需要修改----inc中是所有驱动文件的头文件---src中是所有驱动的驱动源文件。
----1-2-1-----inc为头文件---------
----1-2-2-----src为源文件---------
---1-3---其中Output是用来保存软件编译后要输出的文件,这里专门指定一个文件夹是为了便于管理,不然它会默认保存到保存工程的文件夹中,暂无内容。
---1-4---其中Listing是用来保存编译后生成的链接文件,原因也是同上[b],暂无内容![/b]
---1-5---其中USER文件夹是比较重要的,它是直接存放我们用户自己编写的用户层代码---比如main.c主函数。
----1-5-1-----这里包含有------头文件与源文件----最重要的是main.c与stm32f10x_it.c与stm32f10x_it.h----其它文件都是用户自己编写的代码,然后加入工程去的!
---1-6---最后是PORT是用来单独保存工程文件的,它是要在后面创建工程后才有内容的。
---第二步是创建工程,并且将工程需要的文件加入工程!---
---2-1---新建工程------
----2-1-1-----将新建工程保存在文件夹下的PORT文件夹中---------
----[b]2-1-2-----为工程选址驱动芯片---STM32系列的--------[/b]
----[b]2-1-3-----这里选择STM32F103ZE---------[/b]
[b]
[/b]
-----[b]2-1-4----确定之后会弹出一个对话框,意思是问你是否需要将工程提供给你的自带启动文件加入工程,这里我们使用前面自己复制的启动文件,故选择---否---![/b]
[b]
[/b]
----[b]2-1-5-----这就新建好了一个空白的工程文件---在PORT文件夹下可以看到,有内容了![/b]
---2-2---为新建的工程添加文件------
----2-2-1-----右键选择进入组件管理器---------
-----2-2-2----组件管理器中可以新建文件夹,修改文件夹名,并且为相应文件夹添加前面保存在相应文件夹下的文件----比如启动文件,驱动源文件等---------
---------完成添加修改后,如下---------
----2-2-3-----最后完成,在主界面上可以看到那些添加的文件夹和文件---------
---2-3---工程新建好了,文件添加了,现在就来配置一下工程,主要是包含头文件路径等等操作。
-----2-3-1----第一次进入设置界面---------不需要设置,直接退出后再次进入!----
----[b]2-3-2-----第二次进入设置界面-----[/b]
[b]------2-3-3------设置Target---主要是勾选下图中的Use
MicroLIB项---它的目的就是允许使用自带的C库----比如printf等函数。
[/b]
[b]
[/b]
------[b]2-3-4------设置Output路径---[/b]
------[b]2-3-5------设置编译时生成HEX可执行文件---勾选第二项。[/b]
-----[b]2-3-6----设置Listing路径---[/b]
[b]
[/b]
[b]
[/b]
-----2-3-7----设置C/C++项---添加如下内容---STM32F10X_HD,
USE_STDPERIPH_DRIVER------其中STM32F10X_HD代表使用的芯片是大容量,这里有一点要说么,不管我们使用什么容量的芯片,只要填写这个大容量的标识就可以,但是在程序中就不要使用小容量芯片没有的功能。其中[b]USE_STDPERIPH_DRIVER表示我们可以使用ST官方库。[/b]
[b]
[/b]
[b]----[b]2-3-8-----设置C/C++项---添加文件路径----最后完成OK----[/b]
[/b]
[b]
[/b]
[b]
[/b]
[b]
[/b]
[b]---第三步是编译main.c文件----最简单的主函数----[/b]
[b]
[/b]
[b]---第四步是编译,检查是否有错误---一般使用中间这个---[/b]
[b]
[/b]
[b]------无错误,且生成了HEX文件------[/b]
[b]
[/b]
相关文章推荐
- STM32 ADC自我学习总结 不断更新中
- STM32 DMA 自我学习 简单总结
- Orleans学习总结(二)--创建工程
- STM32 I2C总线 自我总结学习 不断更新中
- 使用MDK创建stm32 库函数工程简单教程
- STM32学习之创建工程
- 基于MDK-KILE5.23版本的STM32创建工程
- STM32 SPI 自我学习总结 不断更新中
- Android学习总结(二)创建工程及配置
- STM32 CAN 总线 自我学习总结
- IAR中创建STM32工程步骤(寄存器版本)
- STM32 485通信 自我学习总结 控制380V变频器去控制380V电机 不断更新中
- STM32 串口烧写 FLASH 外部字库 UCGUI显示 自我学习总结
- 记忆力减退---之STM32 MDK工程创建---宏定义
- 单片机入门学习四 STM32单片机学习一 跑马灯程序和创建工程
- 使用MDK创建stm32 库函数工程简单教程
- stm32_008_mdk创建工程注意事项
- STM32 UCGUI 移植 自我学习总结
- STM32 中断配置 自我学习总结
- STM32学习笔记——新建工程模板步骤(向原子哥学习)