你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32 keil新建工程模板

[复制链接]
STMCU小助手 发布时间:2022-6-18 17:00
Ⅰ、写在前面

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

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

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

0 a, P% E" U% u2 t+ E4 a

9 a& E  W$ D6 K3 t7 O/ T! v  p

Ⅱ、本文要点

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


* k1 D9 |* H- U

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


4 A# L; y$ E4 _+ z! ?2 ^

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


0 C6 x* w& z5 X; _Ⅲ、准备工作

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

* `/ N# l4 C* B( O
2.STM32标准外设库下载

   

3.整理工程文件夹

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

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


# R! l4 U7 S6 ]: D' S4 I

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

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

' R6 n& X5 i2 R6 Y2 I

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

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

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

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

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


6 C' X. Y0 a* ?5 Z6 e

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


( k; G7 e) R* N  T+ S0 I

B.新建文件和文件夹

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

App: 应用部分代码

Bsp: 底层部分代码

Doc: 说明文档

4 G' P: `9 N+ j7 U" n

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

% Y1 i" w' e0 `

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

, V1 t& g+ }* N2 A& h8 U" D3 K
4 u2 m# v7 [/ c+ Z
20161107104749621.png
' [' V& t8 ~  v
; n  Q# v. Q- Y$ L0 u- Z( ?, {8 U

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


, M4 @0 B* X, B! dⅣ、新建软件工程

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

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


) M) o3 A/ l6 h' L0 ^1 }+ r6 q: Y1.建立工程

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


* U0 R% v  M8 ^6 P  Z0 n6 l1 o* Y7 X

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


' P) W8 I6 i. z+ k6 a

3 A4 ]- \5 r/ c& } 20161107104819388.png . o" }* G$ F8 [! b5 y/ S  v) Q. J' `
. O, D4 h+ R; K

B.选择路径,保存名称


) d+ d1 k' k- J/ S, ]( W5 F2 T
, A6 c% N/ n& ^1 ?; T
20161107104848622.png
6 p7 ?1 b3 N$ h7 M
6 d# G3 K1 O1 z* K" X* }4 F

C.选择芯片型号


+ y( [, I( l: |6 q0 d

; H7 j0 u* e0 L* { 20161107104900388.png   j( x- G6 |5 {! n8 r

1 B; T( K8 G0 c! M' b 20161107104920591.png & b0 \! d( r; y3 D  r3 a! [

; ^" M/ t8 `' W- _" `

D.基础工程

+ r$ x. I2 B6 V9 _: F) O) T

20161107104940217.png


3 N; g' n9 `/ [! G) P; ?% Z3 F

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

8 n6 R$ U+ ~+ L5 t4 _! }
2.添加文件

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

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


: P& _7 _3 D# l4 f! F, R. C& @* A

20161107105007373.png


. r9 ~- b/ C3 {# A8 ~

20161107105220202.png

9 ~: n, C! K1 T. Y

20161107105103203.gif

4 G% K2 L% Z3 M2 m1 Z  _

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


( t( \# c. i$ {4 g# }

20161107105152889.png


+ P9 d: r7 |4 q* X! g- }5 |5 o3.配置工程

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


2 ?) A8 V5 B! v

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

  T# u" l8 |. o. v8 G5 R: J; `

) z6 |) }% I; a) q 20161107105250970.png
- p% ?8 Z, i5 M5 L$ @3 v0 b4 ~; P9 M

B.输出Hex文件

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

, v! X! \7 d, D; C. G- v

; V$ M4 z0 {) M+ [ 20161107105310252.png 8 W9 M1 @, u$ R7 U8 Y. Z

2 h  z$ b0 T2 k9 ?' L

C.C/C++配置

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

% X7 C% f) d3 [! P/ B1 K# I

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

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


: d% l4 {0 C4 x: Z, k

20161107105350144.png

. C# X8 n! k8 J& Z

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


' C3 M9 w. B# `  _* v# Y

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

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

; ?  ]3 B/ G2 W7 Y6 ^: ?3 c

20161107105402754.png

# T! ^, x0 n" H

20161107105416676.png

$ J# c* S+ a( T, S; @! @9 ^

20161107105515609.gif


, \& J9 I) \" S  u9 n

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


  L7 ~8 k2 F* ?  C/ f" P+ l

20161107105634679.png

3 z8 J4 p: f2 O8 L4 D4 d

D.选择下载调试工具

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


+ A$ |# P1 p' i6 R& x

20161107105646579.png

3 \# u4 w  ?0 Z6 H* k# H1 ^) x, X% u. ~! K
E.下载复位并运行设置

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


9 n7 t8 l: [7 J; g9 J) O

9 o. ~1 W, ]  _ 20161107105702618.png 3 P0 \7 T5 `3 N8 i8 t2 b

" u- e; _3 V$ e2 [' u 20161107105712196.png
" G2 h# x  N+ ^( X9 t
' |2 {+ q# u. R+ g4 ~

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


7 {0 s  C2 h, J- c
1 |1 ^/ r" H# `; E! w0 g/ |
0 j3 f$ L# `7 w- p3 l
赞 收藏 评论0 发布时间:2022-6-18 17:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版