Ⅰ、写在前面

本文使用目前(2016年11月)最新版本Keil(MDK-ARM)V5.21a开发环境以STM32的处理器为例给大家讲述新建一个软件工程的详细过程。

Keil(MDK-ARM)V4和V5新建软件工程基本一样,本文也适合与V4版本的新建软件工程。

本文使用的处理器是ST公司的STM32F1系列芯片,ST公司其它系列(如:F4等)、其它公司(如:TI)新建软件工程的过程也是一样。

转载至:https://blog.csdn.net/ybhuangfugui/article/details/51501781

Ⅱ、本文要点

从本文标题可以看得出,重点是新建软件工程的过程。但是作为ARM开发的软件工程,一般都会包含部分源代码(如:库),意思就是说需要准备一些工程所包含的源代码文件。

本文基于STM32F1系列芯片为例来讲述(其他系列芯片类似),将简单描述一下准备STM32F1标准外设库、Demo源代码(LED闪烁例程)。

准备工作之后新建软件工程才是本文是要点,新建软件工程的过程主要针对初学者,大部分工程的配置就选择默认

Ⅲ、准备工作

俗话说“磨刀不误砍柴工”,准备工作虽然与题目关系不是很大,但也是本文的重点,做好了准备工作,后面新建软件工程的工作就很容易实现了。

2.STM32标准外设库下载

官网下载链接(需要ST账号登陆):

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961

根据芯片型号下载对应的标准外设库(如芯片为STM32F103ZE,则下载对应的STM32F10x_StdPeriph_Lib),如下图:

也可以到百度网盘下载(和官网一样):

http://pan.baidu.com/s/1qYbBKMK

3.整理工程文件夹

这一小节的内容可根据自己习惯来整理,我整理的文件及文件夹结构是按照常规的整理方式。你如果觉得合理,可以引用;如果觉得不习惯这个结构方式,可以自己整理。

首先建立一个存放工程文件的文件夹:STM32F103ZE(Keil)_Demo

A.提取ST标准外设库文件

ST官网下载的标准外设库里面有很多源代码文件,但我们只需要使用部分文件。因此,需要提取使用的文件及文件夹到我们的工程中。

解压“STM32F10x_StdPeriph_Lib”,可以看到在主目录下面有四个文件夹:

_htmresc:图片文件夹(不提取

Libraries:库文件夹(提取大部分

Project:  示例工程(提取少部分

Utilities: 公共代码、评估板代码(不提取)

我们使用标准外设库主要提取的文件是Libraries下面的文件,但有些文件及文件夹也是多余的。因此,我将多余的文件及文件夹去掉,保留需要的文件和文件夹。

B.新建文件和文件夹

除了标准外设库文件之外,我们需要建立存放自己代码的文件和文件夹。我这里主要需要新建三个文件夹:

App: 应用部分代码

Bsp: 底层部分代码

Doc: 说明文档

在自己新建的文件夹下面还需要新建自己的文件,文件里面添加源代码,我们提供的Demo工程,实现的功能比较简单,就是一个LED闪烁。这里不描述,具体可以在最后下载查看。

上面两个步骤完成之后,我们就可以看到在“STM32F103ZE(Keil)_Demo”下面整理的文件夹:

至此,准备工作算完成了,上面提取的文件、新建的文件里面具体的内容请下载Demo工程查看

Ⅳ、新建软件工程

新建一个简单、基础的软件工程大概需要有三个步骤:建立工程添加文件配置工程

上面的准备工作做好之后,就可新建自己的软件工程了,下面将一步一步讲述从零开始新建一个软件工程的详细过程。

1.建立工程

建立工程的步骤是基础,也比较简单。

A.打开软件,新建立工程(Project -> New uVision Project)

B.选择路径,保存名称

C.选择芯片型号

D.基础工程

一个基础的工程就完成了,但需要使用还不够,还需要下面的步骤。

2.添加文件

准确的来说,应该是添加组(文件夹)和添加文件。直接的说,就是将你自己的源代码(前面提取的库、新建的文件等)添加到工程中。

这里的工程项目管理可根据自己的想法来定义(类似于自己分类、命名文件夹和文件),我这里按照常规的方式进行管理项目。

·

·

一步一步添加,直到最后完成

·

·

3.配置工程

配置工程对于初学者来说,大部分内容只需要默认即可,这里只讲述几个常见的配置,能满足基本的功能。

A.点击“工程目标选项”进入配置(或Project -> Options for Target)

B.输出Hex文件

很多朋友初学的朋友都会问怎么输出Hex(可直接下载的文件),只需要勾选上【Project -> Options for Target -> Output】“Create HEX File”即可。

C.C/C++配置

这个选项的配置参数比较多,对于大型项目来说比较重要,但对于初学者来说,只需要简单配置两项就行。

第一处配置---预定义

【这里只针对于STM32F103大容量芯片,其他芯片视情况而定】

预定义STM32F10X_HD,有些工程还预定义USE_STDPERIPH_DRIVER。由于都是使用“标准外设库”,我个人习惯把USE_STDPERIPH_DRIVER,定义在stm32f10x.h文件里面,所以在这里就看不到我定义的这一项了。

第二处配置---包含路径

由于我们前面工程中有很多文件夹,因此需要添加对应的路径,这样编译器才能找得到。

·

·

一步一步添加,直到最后完成

·

·

D.选择下载调试工具

这个选项根据自己的下载调试器来选择(比如:ST-Link)

E.下载复位并运行设置

有些初学的朋友说“为什么我下载程序之后,需要按一下复位键才能运行?”,只需要在工程中勾选上“Reset and Run”就可实现,下载完程序马上运行了。

至此,一个新建立的工程就算完成了(当然,我新建的文件是添加了正确的源代码),只需要编译,接上下载器就可以下载运行了。

Ⅴ、下载

为方便广大STM32学习者,我将常见的STM32“Demo软件工程”已经建好,,里面包含IAR for ARM新建的工程供大家下载。【如果没有你对应的芯片型号,你又想得到,可以给我留言“STM32FXXXxxDemo 工程”。我会做一个统计,如果某一型号芯片Demo工程有多人需要,我会考虑给你们写的。】

STM32F0工程模板:

http://pan.baidu.com/s/1pKSkSxt

STM32F1工程模板:

http://pan.baidu.com/s/1c1AWupM

STM32F2工程模板:

http://pan.baidu.com/s/1o8yGWg6

STM32F3工程模板:

http://pan.baidu.com/s/1boVXh2f

STM32F4工程模板:

http://pan.baidu.com/s/1qYzYMuS

【STM32】 keil新建工程模板相关推荐

  1. 【STM32】新建工程模板及配置

    系列文章目录 ·[STM32]新建工程模板及配置 ·[STM32]STM32与PC端.HC-06.ROS进行USART串口通信 ·[ROS]ROS上位机使用Serial库和boost::asio库与S ...

  2. STM32入门笔记(02):MDK Keil5 开发环境搭建及新建工程模板教程(SPL库函数版)

    目录 Keil5 开发环境搭建 芯片数据手册 Mec 多功能智能小车底盘开发与使用手册 Mec 主控原理图 Mec STM32F103VET6集成主控板资源分配 Mec OLED 显示内容 如何给 S ...

  3. 从零开始学习STM32(一)—— 新建工程模板

    从零开始学习STM32(一)-- 新建工程模板 前言 准备工作 软件下载 必要文件下载 新建工程 结语 前言 从零开始学习STM32系列将由浅入深,和大家一起走进STM32的世界. 本系列的学习是基于 ...

  4. 学习笔记三(STM32串口程序下载新建工程模板)

    STM32串口程序下载 STM32F4 的程序下载有多种方法:USB.串口.JTAG.SWD 等,这几种方式,都可以用来给STM32F4下载代码. 利用串口给STM32下载程序 STM32 的串口下载 ...

  5. Keil uVision5新建工程模板

    Keil uVision5新建工程模板 新建工程 将启动文件添加到工程中 将main.c添加到工程中 其他 新建工程 新建文件夹->命名(Template) Project->New uV ...

  6. 正点原子stm32F407学习笔记1——新建工程模板

    一.基于固件库 1.新建文件夹 新建一个Template文件夹,在此文件夹下新建五个子文件夹 2.打开keil软件,点击菜单栏Project –>New Uvision Project,如果有其 ...

  7. STM32F4 | 新建工程模板——寄存器版本 | HAL库入门 | 新建工程模板——库函数版本

    文章目录 一.新建工程模板--寄存器版本 二.HAL入门 1.固件库和寄存器的区别 2.STM32CubeF4 3.HAL库包介绍 三.新建HAL库工程模板 一.新建工程模板--寄存器版本 开发环境: ...

  8. Keil 创建工程模板及精简第一个FreeRTOS程序

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Keil 创建工程模板及精简第一个FreeRTOS程序 前言 一.**Keil 创建工程模板** 二.精简FreeRTOS第一个程序 ...

  9. 基于Ubuntu(x86)系统和STM32(Keil)编写C程序分别进行编程、验证

    文章目录 实验内容 一.基本概念 (一).全局变量 (二).局部变量 (三).堆和栈 二.编程验证 (一).基于Ubuntu用Linux系统编写C程序 (二).基于STM32用Keil编写C程序 三. ...

最新文章

  1. Mysql与sqlite注意
  2. CentOS系统中使用yum快速安装python3
  3. 微信开放平台全网发布时,检测失败 —— C#
  4. Android中Activity启动模式
  5. macos 编译php,TODO:macOS编译PHP7.1
  6. SK海力士收购英特尔NAND闪存业务已获韩国公平贸易委员会批准
  7. Eclipse 4.10.0 正式发布,全面拥抱 Java 11!
  8. 基于 CODING 的 Spring Boot 持续集成项目 1
  9. GnuTLS recv error (-54): Error in the pull function(解决方法)
  10. 软件开发流程:软件运维流程
  11. 云计算是商业模式创新而非技术创新
  12. Android开发实用小工具八——汇率转换工具
  13. 学会可视化大屏布局技巧,让领导都赞不绝口
  14. JAVA透视相机安卓_透视相机下载安卓版
  15. 0004-1-模型好坏评判标准
  16. 老男孩上海校区Python面试题
  17. Invalid packaging for parent POM x, must be “pom“ but is “jar“ @
  18. 2023华为软件精英挑战赛——全赛段思路分享与总结
  19. 【批处理DOS-CMD命令-汇总和小结】-上网和网络通信相关命令-用户账户管理-文件(夹)共享(net)
  20. MYSQL——触发器

热门文章

  1. Visual Studio 常见问题及解决方案(持续更新)
  2. [Linux命令]Sed命令参数
  3. Wintellect Collection Classes for .NET now on CodePlex
  4. php 连接数据库 pod,PHP PDO类解决数据库连接问题
  5. java json格式字符串转为map_json格式的字符串序列化和反序列化的一些高级用法...
  6. 投影参数_投影仪参数怎么看?没搞懂之前千万不要买
  7. js判断是安卓手机还是ios
  8. 【图像处理】RGB Bayer Color分析
  9. 腾讯课堂的物理实验(2017计蒜客初赛第三场)
  10. 【Java NIO的深入研究6】JAVA NIO之Scatter/Gather