STM32开发环境--使用MDK建立一个工程

该工程模版是基于库函数基础制作而成,其中有借鉴相关资料。虽然工程模版一旦建立,以后任何项目只需套用即可,但考虑到长时间不使用,在将来某天可能会突然用到,再查询资料搭建比较费时间和精力。故在此做一个简单的教程,在方便自己以后查阅的同时,也希望可以帮助到别人。另水平有限,如有错误,欢迎指正!

声明:此文章为本人笔记,如若按照本教程制作出工程模版,在具体工程中造成任何损失,本人概不负责。

1、 工程使用相关资料说明:
a) 软件工具:MDK 5

b) STM官方库版本: STM32F10x_StdPeriph_Lib_V3.5.0

​​下载链接:

c) 借鉴正点原子的SYSTEM文件夹,包含功能有:延时函数、位带操作、串口  打印代码的库函数文件
2、 先在电脑任意位置创建一个工程文件夹。架构如下图所示:

说明:

ProjectNameExample:此为整个工程项目命名,可为任意文字;

V1:版本号,方便后期项目升级,可直接将V1文件夹复制成为V2.0等,命名可为任意文字;(可以不要)

CAREM3:此文件夹用于存放care—M3内核文件和启动文件之用。命名建议为字母、数字、下划线;汉字是否可以,未经测试;

HARDWARE:此文件夹中存放自创相关库函数使用,具体使用后面会有介绍;命名建议为字母、数字、下划线;

OBJ:此文件夹中是存放工程编译的中间文件以及最终生成的.hex文件,工程中需选择存放于此,后面会有介绍。命名建议为字母、数字、下划线;

STM32F10x_FWLib:此文件夹是存放部分STM官方库文件;命名建议为字母、数字、下划线;

SYSTEM:上文已有介绍。(可以不要)

USER:存放格式为.uvprojx的工程文件以及main.c文件和重要STM官方库文件;

3、 打开安装好的MDK软件,选择Project –>New Uvision Project ,然后将目录定位到刚才建立的文件夹USER。选择工程名为ProjectName(命名可以任意起)。如下图所示:

4、 在点击“保存”后会弹出一个画面(如下图),此时需选择MCU型号(我这里选择的是STM32F103C8T6)

5、 在点击“OK”后会弹出一个画面,如下图,直接点击取消即可。此画面为引导配置,个人觉得不好用,所以直接取消。

6、 然后再打开刚刚创建的工程文件夹,会发现USER目录下包含以下4个文件。

接下来就很重要了!需要将STM官方库STM32F10x_StdPeriph_Lib_V3.5.0文件夹中相关*.c\*.h等源码拷贝到工程文件下,具体操作如下:

1. CAREM3:中包含有3个文件;在STM官方库STM32F10x_StdPeriph_Lib_V3.5.0文件夹的路径:

1和2两个文件位置:

STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport

​​3文件的位置:

STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

​注:文件3为启动文件,需要根据不同容量的MCU去选择:

​startup_stm32f10x_ld.s:小容量,一般为16K~64K的MCU使用。

startup_stm32f10x_md.s:中容量,一般为64K~128K的MCU使用。

startup_stm32f10x_Hd.s:大容量,一般为256K~512K的MCU使用。

2. HARDWARE:此文件夹中存放自创相关库函数使用,工程模版中可为空。本人在该文件夹下放了两个自己创的函数模块beep和led两个文件夹,分别封装的是蜂鸣器和led灯的端口配置情况的函数。建议大家每一个功能的.c和.h文件单独配置一个文件夹,方便后期查看和使用。

3. STM32F10x_FWLib:此文件夹是存放部分STM官方库文件,直接将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver包含的两个文件夹全部复制过来。其中inc中包含的是函数库中的.h文件,src中包含的是函数库中的.c文件。
4. USER:除了存放格式为.uvprojx的工程文件外,还需存放3个.c文件和.h文件。拷贝地址:

STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template

注:拷贝完毕后,需要将main.c打开,将里面已有的源码全部清除。然后将main.c保存。

7、 接下来就需要在MDK软件进行相关配置了。

打开刚刚的USER目录下的,然后鼠标在工程中右键选择会弹出一下界面在弹出的界面需要进行相关文件的添加。具体操作如图所示。

​注:在为CAREM3添加文件时有点特殊,因为其他文件夹都是添加.c文件,而这个里面还要添加一个.s的启动文件。具体操作如下图所示:

完成以上操作后,点击魔术棒弹出如下画面,点击按照图片进行配置。

然后在切换至界面。然后按照下图step 1~4进行配置。其中要特别注意step 2 和step 4 。所有设置完成一定要点击“ok”

8、 在main函数中添加如下代码,点击编译,若没有错误,工程模版即建立完成。若有错误请按照上述步骤查找问题原因,修改完成后重新编译之前需要将“V1”中“OBJ”中所有编译产生的中间文件全部删除掉后重新编译。

9、 完成。

STM32开发环境--使用MDK建立一个工程的更多相关文章

  1. ubuntu linux下建立stm32开发环境: 程序烧录 openocd+openjtag

    原文出处: http://blog.csdn.net/embbnux/article/details/17619621 之前建立stm32开发环境,程序也已经编译好生成main.bin,接下来就是要把 ...

  2. Linux下STM32开发环境的搭建

    目录 一.概述 1.目的 2.开发环境描述 3.Eclipse构建的STM32集成开发环境结构 4.GDB / GDB Server 调试模型 二.搭建步骤 三.详细的搭建过程 1.安装eclipse ...

  3. ubuntu下安装stm32开发环境

    在windowns下开发stm32刚开始学最烦的就是创建工程模板,都不知道为什么要那样设置,而且步骤繁多.现在我告诉大家一个好消息,在linux下配置stm32开发环境包括创建工程,使用JLink仿真 ...

  4. windows下STM32开发环境的搭建

    一.概述 1.说明 笔者已经写了一篇Linux下STM32开发环境的搭建 ,这两篇文章的最区别在于开发环境所处的系统平台不一样,而其实这个区别对于开发环境的搭建其实影响不大,制作局部上的操作上发生了改 ...

  5. VS Code 搭建stm32开发环境

    MCU免费开发环境 一般芯片厂家会提供各种开发IDE方案,通常其中就包括其自家的集成IDE,如: 意法半导体 STM32CubeIDE NXP Codewarrior TI CCS 另外也可以用ecl ...

  6. 搭建Spring开发环境并编写第一个Spring小程序

    搭建Spring开发环境并编写第一个Spring小程序 2015-05-27      0个评论    来源:茕夜   收藏    我要投稿 一.前面,我写了一篇Spring框架的基础知识文章,里面没 ...

  7. 嵌入式STM32开发环境之Keil5的安装(附资源)--

    全文copy,原文见https://blog.csdn.net/weixin_42602730/article/details/81007685 --------------------------- ...

  8. VC6下OpenGL 开发环境的构建外加一个简单的二维网络棋盘绘制示例

    一.安装GLUT 工具包 GLUT 不是OpenGL 所必须的,但它会给我们的学习带来一定的方便,推荐安装. Windows 环境下的GLUT 本地下载地址:glut-install.zip(大小约为 ...

  9. Struts2开发环境搭建,及一个简单登录功能实例

    首先是搭建Struts2环境. 第一步 下载Struts2去Struts官网 http://struts.apache.org/ 下载Struts2组件.截至目前,struts2最新版本为2.3.1. ...

随机推荐

  1. excel之实验数据处理线性拟合

    实验前准备:设计表格项,通过设计公式,从而输入原始数据后直接得到最终的结果数据,学习常用的VBA公式及处理:Cn-$B$4,其中的$B$4表示绝对单元格位置;SUM(Xm:Yn)求范围内的和. 针对实 ...

  2. 爬虫中动态的POST参数

    爬虫的过程中,有的网站提交POST数据时候每次都会带上不懂POST参数,要想爬到数据首先的知道怎么构造这些动态的参数. 1.分析提交POST数据的最原始网页,分析原始网页的源代码,查找里面是否包含有你 ...

  3. Linux常用命令awk

    awk能够处理类似csv这种按行格式的数据,对每一行record按照-F指定的分隔符切割,然后处理.默认支持空格和\t分隔符 1.统计文件里某一列数据等于某个值的个数 -0_djt10.txt 2.拼 ...

  4. P1482 Cantor表(升级版)

    题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … ...

  5. 代码文件导到word里

    # 创建并写入word文档 import docx import sys import os dir = "D:\\gitwork\\fm.qimeng.c-class\\src\\main ...

  6. Backbone.js之Todo源码浅析

    相信每个接触了解过backbone的人都知道todo,网上的关于它的分析教程也都分析乱了.但是,知识只有自己学习领悟才是自己的,话不多说,正文开始. 在分析todo的源码之前,首先我们要知道todo具 ...

  7. 十个 JDBC 的最佳实践

    JDBC是Java为多种关系型数据库提供的统一的访问接口,以下是我长期使用JDBC总结的十个最佳实践. 1. 使用PrearedStatement 任何一个使用过JDBC的Java程序员几乎都知道这个 ...

  8. sql server 2000备份还原数据库

    转载请注明出处:http://blog.csdn.net/neochan1108/article/details/79248017 备份: -- Create the backup device fo ...

  9. Angular JS中变量定义的基本原则

    在Angular JS开发中,经常需要定义一些变量,关于这些变量的定义方法及作用域应该注意以下几点: 1. 如果能用局部变量解决问题,尽量不要用全局变量. 2. 需要与界面双向绑定的变量采用$scop ...

  10. 错误消息 This computer doesn't have VT-X/AMD-v enabled

    在VirtualBox的Ubuntu虚拟机里试图本地安装Kyma(一个基于Kubernetes的开源框架)时,遇到下面的错误信息: E0827 11:19:38.972489 3093 start.g ...