本文只针对使用MDK-ARM建立软件开发环境,并基于STM32L1xx_StdPeriph_Lib_V1.1.1库及其Examples,其余情况可参考UM1451 User manual Getting started with software development toolchains for the STM32L-DISCOVERY board

(后续会补充一般情况下创建STM32L MDK Project说明)

1.  安装Keil uVision4

2.  下载获得STM32L1xx_StdPeriph_Lib_V1.1.1.zip压缩包,解压到H:\STM32L1xx_StdPeriph_Lib_V1.1.1,内部目录结构如下:

(PS:可以详细阅读目录下的stm32l1xx_stbperiph_lib_um.chm,该文档有不错的参考价值)

3.  在H盘下新建STM32_Project目录,拷贝H:\STM32L1xx_StdPeriph_Lib_V1.1.1\Project\STM32L1xx_StdPeriph_Examples\GPIO  目录到 H:\STM32_Project\下

4.  进入到H:\STM32_Project\GPIO\IOToggle 目录下创建MDK-ARM,并在MDK-ARM目录下创建objects目录

5.  打开Keil uVision4,点击Project菜单栏的New uVsion Project ,此时选择保存路径为:H:\STM32_Project\GPIO\IOToggle\MDK-ARM\

6.  按照提示选择芯片为STM32L152RB

7.  此时会提示是否拷贝startup文件到当前目录,选择YES,此时将MDK-ARM目录下的startup_stm32l1xx_md.s 拷贝到上一级目录即:H:\STM32_Project\GPIO\IOToggle\

(这样做是为了将所有源文件都放在H:\STM32_Project\GPIO\IOToggle\目录下,而MDK-ARM目录只存放MDK所生产的文件)

8.  选中target1,点击右键,选择Options for Target 'Target1'... 或者按Alt+F7快速打开该Options窗口

9.  按照下图显示进行配置Options for Target 'Target1'

Device选项为创建Project时选择的芯片型号,可从该页面修改选择的芯片类型

Target 选项配置如下,由页面可以配置了on-chio ROM 和 RAM的地址和大小,还有Xtal频率,另外勾选了Use MicroLIB ,对于这个库可参考MDK-ARM的说明http://www.keil.com/arm/microlib.asp

Output页面可配置编译输出文件目录和输出信息,点击select folder for objects,选择在MDK-ARM目录下的objects目录

C/C++配置为最重要的配置,定义了USE_STDPERIPH_DRIVER, STM32L1XX_MD, USE_STM32L152_EVAL symbols,选择Optimization为Level 3(-O3),Warnings为All Warnings,同时配置Include Paths,否则编译时会找不都相关头文件

Debug选择仿真器为ST-Link Debugger 同时Protocol为SWD,同时勾选Run to main()

Utilities 同样选择ST-Link Debugger

10.  选中target1,右键选择Manage Components

11.  配置Components,Environment and Books,修改Project Targets 名称为iotoggle,创建Groups:User、StbPeriph_Driver、CMSIS、STM32152L_EVAL、MDK-ARM、Doc,然后为不同的Groups添加文件:

User 包含H:\STM32_Project\GPIO\IOToggle\ 目录下的main.c、stm32l1xx_it.c

StbPeriph_Driver包含H:\STM32L1xx_StdPeriph_Lib_V1.1.1\Libraries\STM32L1xx_StdPeriph_Driver\src目录下的所有.c文件

CMSIS包含H:\STM32_Project\GPIO\IOToggle\ 目录下的system_stm32l1xx.c

STM32152L_EVAL包含H:\STM32L1xx_StdPeriph_Lib_V1.1.1\Utilities\STM32_EVAL\STM32L152_EVAL 目录下的所有.c文件

MDK-ARM包含了H:\STM32_Project\GPIO\IOToggle\ 目录下的startup_stm32l1xx.md.s

Doc 包含readme.txt

12.  以上配置完成后基本已配置完成,点击Build Target会出现以下错误,此时选中stm32l152_eval_i2c.ee.c,右键选中options  for file stm32l152_eval_i2c.ee.c,不勾选Include in Target Build

保存重新编译,通过完成,此时基于STM32L1xx_StdPeriph_Lib_V1.1.1库及其Examples 的MDK-Project建立配置完成,另外可以将源文件拷贝到H:\STM32L1xx_StdPeriph_Lib_V1.1.1\Project\STM32L1xx_StdPeriph_Templates目录下,使用模板project来运行example(暂末尝试,后续补充),我这样创建MDK-Project的目的是为了可以使用subversion来进行版本控制,虽然比起使用template步骤繁琐,但是对于了解MDK配置有一定帮助,另外有利于以后创建自己的Porject(一般情况下和不适用lib库情况下(均后续补充))

基于MDK-ARM创建STM32L-DISCOVERY Project的更多相关文章

  1. 基于MDK的ARM-GCC开发环境建立及新唐M0的HID类设备的C++开发

    一,下载安装测试arm-none-eabi-gcc编译工具链 1,查看arm-none-eabi-gcc编译工具版本        打开网页:https://sourcery.mentor.com/G ...

  2. 20155206赵飞 基于《Arm试验箱的国密算法应用》课程设计个人报告

    20155206赵飞 基于<Arm试验箱的国密算法应用>课程设计个人报告 课程设计中承担的任务 完成试验箱测试功能1,2,3 . 1:LED闪烁实验 一.实验目的  学习GPIO原理  ...

  3. 2015520吴思其 基于《Arm试验箱的国密算法应用》课程设计个人报告

    20155200吴思其 基于<Arm试验箱的国密算法应用>课程设计个人报告 课程设计中承担的任务 完成试验箱测试功能4,5,6以及SM3加密实验的实现 测试四 GPIO0按键中断实验 实验 ...

  4. 使用eclipse插件创建一个web project

    使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 ...

  5. 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)

    搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...

  6. Eclipse 使用maven创建Dynamic Web Project

    今天看到spring的官网首页已经没有下载连接了,建议使用maven构建spring项目.虽然maven已经不是新技术,但是这个我还没用过,谷歌走起! 通常创建项目都是用Eclipse,前几年还是My ...

  7. Particles.js基于Canvas画布创建粒子原子颗粒效果

    文章目录 使用方法 自定义参数 相关链接 Particles.js是一款基于HTML5 Canvas画布的轻量级粒子动画插件,可以设置粒子的形状.旋转.分布.颜色等属性,还可以动态添加粒子,效果非常炫 ...

  8. eclipse EE neon创建dynamic web project时,卡在installing dynamic web module facet,解决办法

    我们在用eclipse EE neon创建dynamic web project时,如果你发现底部状态栏一直卡在installing dynamic web module facet,永远到不了100 ...

  9. 令用EclipseJ2EE创建的Dynamic Web project目录结构与用MyEclipse创建的Web project一样

    Eclipse for EE 版本, 创建 Dynamic Web Project  会有俩个工程. 其中一个 是你创建的工程, 另外一个 是Servers 工程(其实也就是tomcat 的一个配置) ...

  10. 创建Dynamic Web Project时 显示最新Apache Tomcat 8.0 的方法

    创建Dynamic Web Project时  显示最新Apache Tomcat  8.0 等的方法 解决办法如下: 第一步:eclipse菜单help->eclipse marketplac ...

随机推荐

  1. Java IO7:管道流、对象流

    前言 前面的文章主要讲了文件字符输入流FileWriter.文件字符输出流FileReader.文件字节输出流FileOutputStream.文件字节输入流FileInputStream,这些都是常 ...

  2. C#抓取网页HTML内容

    网上很多内容采集工具,今天就自己试着写一个,发现C#可以轻松的抓去网页的内容,进而通过正则来分离出自己感兴趣的数据.下面是抓去网页内容的代码: using System; using System.C ...

  3. 内存角度探寻C++面向对象 之 继承、多态

    一,简单继承: #include <iostream> class TableTennisPlayer { private: int id; public: TableTennisPlay ...

  4. 使用Vue.js时,对Chrome控制台的一点小心得

    之前对Chrome控制台的console.log()输出没太放心上,其实仔细研究后,对工作效率有显著的提示.看下面的五段代码: console.log(''); console.log(typeof ...

  5. Linux~centos上安装.netcore,HelloWorld归来!

    对于跨平台的.netCore来说,让它的程序运行在Linux系统上已经成为必然,也是一种趋势,毕竟我们的很多服务都放在linux服务器上(redis,mongodb,myql,fastDFS,luce ...

  6. salesforce 零基础学习(三十八)Translate 的使用(国际化处理)

    本篇参考:http://resources.docs.salesforce.com/200/17/en-us/sfdc/pdf/salesforce_workbench_cheatsheet.pdf ...

  7. vuejs - the component is a fragment instance

    vuejs - the component is a fragment instance http://vuejs.org/guide/components.html#Fragment-Instanc ...

  8. Java EE开发平台随手记5——Mybatis动态代理接口方式的原生用法

    为了说明后续的Mybatis扩展,插播一篇广告,先来简要说明一下Mybatis的一种原生用法,不过先声明:下面说的只是Mybatis的其中一种用法,如需要更深入了解Mybatis,请参考官方文档,或者 ...

  9. Index Seek和Index Scan的区别

    Index Seek是Sql Server执行查询语句时利用建立的索引进行查找,索引是B树结构,Sql Server先查找索引树的根节点,一级一级向下查找,在查找到相应叶子节点后,取出叶子节点的数据. ...

  10. 了解HTML表单之input元素的30个元素属性

    目录 传统属性 name type accept alt checked disabled readonly maxlength size src value 新增属性 autocomplete au ...