stm32(库函数)——新建基于固件库的MDK5工程模板
这里根据STM32不完全手册记录建立库函数版本的基于固件库的MDK5工程模板。
1、我们每一次新建工程都会新建一个文件夹存放所有文件。
2、点击MDK的菜单:Project—>New Uvision Project,新建工程文件,然后将目录定位在刚刚新建的文件夹之下,然后新建一个子文件夹重命名为USER(存放代码工程等文件),当然也不一定,比如很多人也喜欢新建为project,这些都是因人而异了。
接下来就是选择CPU界面,选择我们使用的芯片型号。
这里我使用的是STM32F103ZET6,所以我就依次选择STMicroelectronics—>STM32F1 Series—>STM32F103—>STM32F103ZE。
特别注意:一定要安装对应的器件pack才会显示这些内容,如果没得选择,请先安装对应的pack。
3、点击ok,MDK会弹出Manage Run-Time Environment对话框。
在这里我们可以添加自己需要的组件,从而更加方便的构建开发环境。
我们直接点Cancel,进入如下界面。
4、前3步我们只是建立一个框架,还需要添加启动代码以及c文件。
此时工程文件夹下面就是这些文件,xiaomo.uvprojx是工程文件,不能删除。这里的其他两个文件夹,Listings和Objects是MDK自动生成的文件夹,用于存放编译过程中产生的中间文件。我们可以把这两个文件夹删除,建立一个新文件夹重命名为OBJ,用来存放编译中间文件。
然后我们继续在工程目录下面新建三文件夹 CORE、OBJ、STM32F10x_FWLib。
- CORE用于存放核心文件和启动文件
- OBJ用于存放编译过程文件以及hex文件
- STM32F10x_FWLib用于存放ST官方提供的库函数源码文件
- USER用于存放工程文件和主函数文件main.c,以及其他包括system_stm32f10x.c等
5、下面我们将官方提供的源码文件复制到我们的工程目录文件夹下面。
在固件库中,打开STM32F10x_StdPeriph_Lib_V3.5.0》Libraries》STM32F10x_StdPeriph_Driver
然后我们将inc和src两个文件夹复制到我们刚刚建立的STM32F10x_FWLib文件夹下面
src文件夹存放的是固件库中的.c文件,而inc文件夹存放的是对应的.h文件。
6、将官方的固件库中相关的启动文件复制到我们的工程目录CORE下。
打开路劲STM32F10x_StdPeriph_Lib_V3.5.0》Libraries》CMSIS》CM3》DeviceSupport》ST》STM32F10x》startup》arm,这个文件夹里面都是启动文件,然后我们根据使用的芯片选择合适的启动文件。
具体选择如下:
- 小容量:FLASH≤32K startup_stm32f10x_ld.s
- 中容量:64K≤FLASH≤128K startup_stm32f10x_md.s
- 大容量:256K≤FLASH startup_stm32f10x_hd.s
我使用的是STM32F103ZET6是大容量芯片,所以选用startup_stm32f10x_hd.s这个启动文件。
将这个文件复制到新建工程目录中的CORE文件夹中。
然后打开路径STM32F10x_StdPeriph_Lib_V3.5.0》Libraries》CMSIS》CM3》CoreSupport
也将该目录下得两个文件core_cm3.c和core_cm3.h复制到CORE文件夹中。
此时CORE文件夹下有如下三个文件。
7、打开路径STM32F10x_StdPeriph_Lib_V3.5.0》Libraries》CMSIS》CM3》DeviceSupport》ST》STM32F10x,将如下三个文件复制到工程目录下的USER中
再打开路径STM32F10x_StdPeriph_Lib_V3.5.0》Project》STM32F10x_StdPeriph_Template,将该目录下的四个文件main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h复制到USER目录中。
此时USER目录下有以下文件
8、到现在,我们已经将固件库中的相关文件复制到了我们的工程目录中了,然后我们需要将这些文件加入到我们的工程中。
在MDK5中,右击Target1,选择Manage Project Items。
然后会弹出如下界面,在Project Targets一栏我们可以自定义Target名字,双击即可修改名字。比如我给修改为xiaomo。
然后在Groups一栏,删掉Source Group1或者直接修改名字。然后新建三个Groups:USER、CORE、FWLIB,点击OK。
9、然后我们向Group中添加我们需要的文件。
首先选中Group然后点击右下角的Add Files,将工程目录下的USER文件夹中的三个c文件添加到Group中,
然后选中CORE再点击Add Files,然后选择CORE文件夹下得core_cm3.c和startup_stm32f10x_hd.s(注意:这里默认是选择c文件,所以我们需要在文件类型选择All files,然后才能选中.s文件)
再选中FWLIB,然后将STM32F10x_FWLib/src文件夹下的所有c文件添加到这个Group中。
添加完成之后就是如下图所示
点击OK保存。
在Project中展开就是这样
10、打开Options,选择Output,点击Select Folder for Objects,选择OBJ目录,将编译中间文件全部放在OBJ文件夹中,勾选Create HEX File,点击OK保存。
如果不设置Output路径,默认保存在自动生成的Objects和Listings目录中。
11、包含头文件路径。打开Options for Target,选择C/C++,点击Include Paths右边的按钮,弹出添加path对话框。
然后将工程中所有的头文件目录添加进去(注意:必须添加到最后一级子目录)
12、配置全局宏定义变量
打开Options for Target,选择C/C++,在Define一栏中输出
STM32F10x_HD,USE_STDPERIPH_DRIVER
在这里,如果使用的是中容量的芯片,就输入
STM32F10x_MD,USE_STDPERIPH_DRIVER
小容量就是
STM32F10x_LD,USE_STDPERIPH_DRIVER
输入完成点击OK保存。
然后编译, 0 Error(s), 0 Warning(s).
工程建立成功。
STM32F1xx固件库参见:https://download.csdn.net/download/xiaomo_haa/10939364
stm32(库函数)——新建基于固件库的MDK5工程模板相关推荐
- 嵌入式 新建基于固件库的MDK5工程模板
1. 在目录下建立一个名为Template的文件夹 2. 打开软件,new一个新的project 3. 在刚才建立的Template文件夹下建立一个USER文件夹(放代码工程文件),然后保存 4. 然 ...
- 【STM32】新建基于STM32F40x 固件库的MDK5 工程
00. 目录 文章目录 00. 目录 01. 前提条件 02. 创建工程步骤 03. 系统时钟配置 04. 添加其他功能函数 05. 附录 06. 声明 01. 前提条件 1.1 官方标准固件库 文件 ...
- MDK5新建工程详细教程-基于固件库
大家好,因为自身对STM32接触的较多,今天向大家介绍一下如何在MDK5上新建工程. 给小伙伴们推荐几个网址,对学习STM32很有帮助. 正点原子官方论坛:STM32中文论坛:MDK官方:正点原子B站 ...
- 总结基于寄存器与基于固件库stm32编程的差异
基于寄存器与基于固件库stm32编程方式有什么差异 总的来说是专业层面或者说是应用层面的区别 总的来说是专业层面或者说是应用层面的区别 从应用角度讲,寄存器相对来说是属于更底层的,类似于驱动层,而固件 ...
- STM32F4 HAL库开发 -- 新建基于 HAL 库的工程模板
一.STM32CubeF4 固件包下载 下载:STM32CubeF4 MCU Firmware Package 二.新建基于 HAL 库的工程模板 1.新建文件夹 建立一个文件夹为 Template. ...
- STM32的2.02固件库提供的启动文件详解 stm32f10x_vector.s
当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择.如此一来main函数似乎成为了理所当然的起点--因为C程序往往从main函数开始执行.但一个经常会被忽略的问题是:微控制器(单片 ...
- STM32基于固件库学习笔记(4)(通用定时器)TIM3定时1S中断
STM32F103ZE系列定时器资源 有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和TIME7 等基本定时器. 通用定时器:是一个通过可 ...
- STM32基于固件库学习笔记(11)RTC实时时钟
实时时钟(RTC) 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx.STM32F102xx和STM32F103xx微控制器. 中容量产品是指闪存存储器容量在64K至128 ...
- STM32_基础入门_新建工程文件—基于固件库
持续关注阿杰在线更新保姆式笔记~~坚持日更 1) 在建立工程之前,建议用户在电脑的某个目录下面建立一个文件夹,后面所建立的工 程都可以放在这个文件夹下面,这里我们建立一个文件夹为 Template. ...
最新文章
- 如何洞察行业中的应用场景?(上篇)
- 【项目】springboot中使用kaptcha生成验证码,登录时密码加盐处理
- 用MS SQL Reporting Services生成报表
- 如何在jieba分词中加自定义词典_Pyspark Word2Vec + jieba 训练词向量流程
- lpv4的地址格式由多少个字节组成_我们为什么有这么多字符编码格式?
- 信息学奥赛一本通(1210:因子分解)
- python while循环if_初入python 用户输入,if,(while 循环)
- 新功能:阿里云负载均衡SLB支持HTTP/HTTPS超时时间自定义功能
- NetBeans 时事通讯(刊号 # 80 - Nov 15, 2009)
- 项目清理和删除svn信息(转)
- Maven的pom.xml文件详解
- MATLAB BP神经网络的设计与优化
- 中国省市区乡县名称代码对照表
- C++通信录管理系统
- pycharm定时运行python脚本_Python脚本定期执行_执行python脚本_如何执行python脚本
- 微信小程序——读取显示用户头像昵称
- TB6612FNG直流电机驱动
- 小米手机超长续航优化的设置
- 自由职业一时爽,一直自由一直爽
- 图片链接打不开检测工具-免费链接失败检测软件