STM32 MDK 工程创建 图解步骤 自我学习总结

发布者:红尘清梦最新更新时间:2017-11-28 来源: eefocus关键字:STM32  MDK  工程创建 手机看文章 扫描二维码
随时随地手机看文章

好久没有使用MDK编写STM32的程序了,现在上手才发现自己都不太记得创建步骤了,于是再次翻阅书籍,一步一步记录一下-----参考了野火的例子!

---第一步---创建一个文件夹---在文件夹下建立如下文件夹---


---1-1---其中CMSIS是用来存放库文件为我们自带的启动文件和一些CMSIS层文件。


----1-1-1-----上面说的启动文件在startup文件夹中,其中包含了各种STM32芯片的启动文件,主要是按照flash大小来分的,后面工程设置再介绍。


---1-2---其中FWlib是用来存放STM32库中inc与src两个文件夹---这两个文件夹不需要修改----inc中是所有驱动文件的头文件---src中是所有驱动的驱动源文件。


----1-2-1-----inc为头文件---------


----1-2-2-----src为源文件---------


---1-3---其中Output是用来保存软件编译后要输出的文件,这里专门指定一个文件夹是为了便于管理,不然它会默认保存到保存工程的文件夹中,暂无内容。

---1-4---其中Listing是用来保存编译后生成的链接文件,原因也是同上,暂无内容!

---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文件夹中---------


----2-1-2-----为工程选址驱动芯片---STM32系列的--------


----2-1-3-----这里选择STM32F103ZE---------


-----2-1-4----确定之后会弹出一个对话框,意思是问你是否需要将工程提供给你的自带启动文件加入工程,这里我们使用前面自己复制的启动文件,故选择---否---!


----2-1-5-----这就新建好了一个空白的工程文件---在PORT文件夹下可以看到,有内容了!


---2-2---为新建的工程添加文件------

----2-2-1-----右键选择进入组件管理器---------


-----2-2-2----组件管理器中可以新建文件夹,修改文件夹名,并且为相应文件夹添加前面保存在相应文件夹下的文件----比如启动文件,驱动源文件等---------


---------完成添加修改后,如下---------


----2-2-3-----最后完成,在主界面上可以看到那些添加的文件夹和文件---------




---2-3---工程新建好了,文件添加了,现在就来配置一下工程,主要是包含头文件路径等等操作。


-----2-3-1----第一次进入设置界面---------不需要设置,直接退出后再次进入!----


----2-3-2-----第二次进入设置界面-----


------2-3-3------设置Target---主要是勾选下图中的Use MicroLIB项---它的目的就是允许使用自带的C库----比如printf等函数。


------2-3-4------设置Output路径---



------2-3-5------设置编译时生成HEX可执行文件---勾选第二项。


-----2-3-6----设置Listing路径---



-----2-3-7----设置C/C++项---添加如下内容---STM32F10X_HD, USE_STDPERIPH_DRIVER------其中STM32F10X_HD代表使用的芯片是大容量,这里有一点要说么,不管我们使用什么容量的芯片,只要填写这个大容量的标识就可以,但是在程序中就不要使用小容量芯片没有的功能。其中USE_STDPERIPH_DRIVER表示我们可以使用ST官方库。


----2-3-8-----设置C/C++项---添加文件路径----最后完成OK----





---第三步是编译main.c文件----最简单的主函数----


---第四步是编译,检查是否有错误---一般使用中间这个---



------无错误,且生成了HEX文件------


关键字:STM32  MDK  工程创建 引用地址:STM32 MDK 工程创建 图解步骤 自我学习总结

上一篇:STM32 串口烧写 FLASH 外部字库 UCGUI显示 自我学习总结
下一篇:STM32 I2C总线 自我总结学习

推荐阅读最新更新时间:2024-03-16 15:47

STM32学习之路(六)——AD转换
ADC输入通道管理模式可分为规则组和注入组。规则组指正常的转换;而注入组是由外部触发或者软件触发,打断正常的规则组转换。规则组可以是某单一的通道,也可以是某几个通道的组合。多通道的转换次序可编程,转换次序长度最大为16,注入通道最长为4. 1、单词转换模式,即可以通过设置ADC_CR2寄存器的ADON位(只适用于规则通道)启动,也可通过外部触发启动(都适用),此时CONT位为0. 规则通道被转换后:数据存储在ADC_DR中 EOC(转换结果)标志置位 设置了EOCIE,则产生中断 注入通道被转换后:数据存储在ADC_DRJ1中
[单片机]
STM32再学习——集成开发环境IDE
嵌入式系统是一个软件和硬件相结合的计算机系统。软件代码经编写、编译、汇编、链接,生成可执行文件,然后将可执行文件加载到嵌入式系统的ROM或flash中,通过嵌入式系统的MCU来控制、检测外部的装置。 软件的编辑需要文本编辑器,编译需要编译器,汇编需要汇编器,链接需要编译器,可执行文件需要软件工具来加载文件,同时软件还需要一些函数库,中间件等。为了使开发更便捷,简单,几乎所有的MCU芯片都会有对应的集成开发环境(IDE),该环境囊括了软件开发从编辑到可执行文件的所有工具,同时还包括常用的库,调试工具,在线调试工具链等。 STM32主流的集成开发环境有两种:IAR和MDK。我在这里不想讨论哪一种IDE好,谈论这个没有意义,就像你认为版
[单片机]
<font color='red'>STM32</font>再学习——集成开发环境IDE
STM32的USB键盘及鼠标例程
STM32的USB键盘及鼠标例程通过网络可以搜到很,但是在同一个设备中集成键盘及鼠标的例程却比较少见(我通过GOOGLE只搜到圈圈的基于51+D12的版本)。以下为我参考圈圈的例程做出来的集成键盘及鼠标的STM32的程序。   程序上除了usb_desc.c及usb_endp.c外,其它部份同单一的键盘鼠标一样。下面着重说一下usb_desc.c及usb_endp.c的不同之处。   单一键盘鼠标跟集成键盘鼠标这区别主要是报告描述符不同。单一键盘鼠标的报告描述符因只有一组报告输入/输出,故没有报告ID,而集成的有两组报告(键盘及鼠标),所以每一组报告都有一个报告ID加以区别。   另外就是在usb_endp.c中对端点的数据
[单片机]
初涉STM32之浅谈时钟使能问题
作为一个STM32的菜鸟级人物,我刚开始接触STM32时,其实和当年开始学习51单片机的心理是一样的。茫然,谁说不是呢?但是,正常的学习途径无非就是看书,然后敲代码,最后烧程序,有问题就check,然后再继续烧,我都怀疑我快成了火头工。因为在我的印象中,只有这类职业才和“烧”有着密不可分的联系。即使当一名敬业又牛逼的火头工是我毕生的梦想。OK,不侃了。我希望,通过写日志把我作为一个菜鸟在学习STM32中的问题记录下来,同时以我为鉴,规避那些没有必要的破事。 1. 学习STM32要不要基础 原则上它应该是需要的,但是,我们也能发现很多人也是没有基础的。比如说,我们实验室的大师兄原来是管理专业,但是现在相当牛逼,软硬皆通。如果你和很多
[单片机]
使用STM32快速开发AliOS Things硬件与软件环境
ST与阿里巴巴集团旗下的云计算科技公司——阿里云合作,推出基于STM32L4 IoT探索套件快速开发AliOS Things的方案。STM32用户可以在STM32L4 IoT上运行阿里的物联网操作系统AliOS,无缝连接阿里云。本文以WiFi连接阿里云收发消息为例介绍了,如何获得AliOSThings开源代码,和如何基于IoT探索套件STM32B-L475E-IOT01A与STM32常用开发工具IAR来快速编译、烧写、调试MQTT应用。 硬件概述 **这块开发板使用的是ST低功耗MCU系列中的STM32L475这款芯片,拥有1M字节的Flash和128K字节的SRAM。 **支持WiFi,蓝牙,SubG, NFC等多种
[嵌入式]
STM32学习----时钟
在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。 其中40kHz的LSI供独立看门狗IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。另外,实时时钟RTC的时钟源还可以选择LSE,
[单片机]
基于STM32MDK程序启动
;//HeapSize(inBytes) 0x0-0xFFFFFFFF:8 ;// Heap_SizeEQU0x00000020;//定义堆空间大小 AREAHEAP,NOINIT,READWRITE,ALIGN=3;//定义一个数据段,8字节对齐 __heap_base Heap_MemSPACEHeap_Size;//保留Heap_Size的堆空间 __heap_limit;//标号,代表堆末尾地址,后面有用 PRESERVE8;//指示编译器8字节对齐 THUMB;//指示编译器为THUMB指令 ;VectorTableMappedtoAddress0atReset AREARESET,DATA,READONLY;//
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved