查看原文
其他

Keil系列教程02_新建基础软件工程

strongerHuang 嵌入式专栏 2021-01-31

置顶/星标公众,不错过每一条消息!


    本教程由原创作者strongerHuang于2018年10月更新发布。

标签:Keil、 MDK-ARM、 µVision

版权所有:禁止商用

申明:该文档仅供个人学习使用,转载请公众号联系作者授权。


1写在前面

目前Keil的四款产品(软件):MDK-ARM、C51、C251、C166,在用法上极为相似,包括本文讲述的新建软件工程。


本文以目前(2018年10月)最新Keil MDK-ARM V5.26、STM32F103标准外设库为例,来给大家讲述新建软件工程的具体步骤。


本文讲述的新建软件工程,只是最基础的软件工程(一个工程,一个目标)。其中只修改了必要的配置,大部分配置默认。


如果你是Keil C51、或者其它MCU器件,本文也适用,只是针对MCU器件有略微差异。


2

准备工作

俗话说“磨刀不误砍柴工”,做好了准备工作,后面新建基础软件工程的工作就很容易实现了。


这里针对STM32会下载“标准外设库”这个准备工作,如果你是C51,或者不用库,这个准备工作就可略过。


2.1 下载安装Keil工具

本文必备工具,详情请参看该系列教程上一篇文章《Keil系列教程01_Keil介绍、下载、安装与注册》。


2.2 下载STM32标准外设库

这一节是准备源代码(库),如果你使用C51、寄存器开发,本节内容可以略过。下面提供官方下载链接,嫌麻烦的朋友可以在我百度网盘下载。


A.官网下载

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),如下图:


B.百度网盘

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


提示:如果以上链接失效,可以关注微信公众号,获取更新链接。


2.3 整理工程文件夹

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


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


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

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


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

_htmresc:图片文件夹(不提取)

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

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

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


我们需要使用Libraries和Project目录下的文件,但也有部分不用。因此,我们需要删除不用的文件。(具体保留了哪些,可以下载我提供例程查看)


B.新建文件和文件夹

除了上面提取的文件之外,我们需要建立存放自己代码的文件和文件夹。我这里主要新建三个文件夹:

App: 应用部分代码

Bsp: 底层部分代码

Doc: 说明文档


在新建的文件夹下面还需要新建自己的源文件,源文件里面添加源代码。我们提供的Demo工程,实现的一个LED闪烁的功能。(这里不描述)。


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


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


3

新建软件工程

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


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


3.1 建立工程

建立工程的步骤是基础,也比较简单,下面一步一步教大家新建一个空的工程。


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


B.选择保存路径,保存名称


C.选择芯片型号


D.基础工程


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


3.2 添加文件

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


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


点击“项目管理”快捷按钮,或者Project -> Manage -> Project Items 进入“项目管理”界面。

·

·

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

·

·


3.3 配置工程

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


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


B.输出Hex文件

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


C.C/C++配置

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


第一处配置---预定义:

【这里以STM32F103大容量芯片为例】


预定义STM32F10X_HD,等同于#define STM32F10X_HD.


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


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

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

·

·

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

·

·


D.选择下载调试工具

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


E.下载复位并运行设置

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


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


4

下载

为方便广大STM32学习者,我将常见的STM32“Demo软件工程”已经建好,里面还包含EWARM建立的工程供大家下载。


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


STM32L1工程模板:

https://pan.baidu.com/s/1rNPC3JQD7iLchVUEJlTjCQ


提示:如果以上链接失效,可以关注微信公众号,获取更新链接。

(公众号不支持外链接,请复制链接到浏览器下载)


5

说明

1.该文档仅供个人学习使用,版权所有,禁止商用。


2.本文由我一个人编辑并整理,难免存在一些错误。


3.本文收录于公众号「嵌入式专栏」,关注微信公众号回复【Keil系列教程】即可查看全系列教程。  


6最后

若觉得文章对你有帮助,随手点赞、分享,也是对我莫大的支持和鼓励。


扫描下面二维码、关注公众号,在底部菜单中查看更多精彩内容!



长按识别图中二维码关注

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存