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

【经验分享】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)新建软件工程的过程也是一样。


! g. o! `/ E- Z- T

# A4 \" z7 x6 p

Ⅱ、本文要点

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

  z. E1 @* K% p; `$ G* F

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

- m8 E* U* o; p/ o$ h- f# @

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


6 M' R  p7 j! a  ?6 ~7 B' I1 w* GⅢ、准备工作

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


+ h! ]8 K( ~  O" J$ W1 }1 o2.STM32标准外设库下载

   

3.整理工程文件夹

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

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

% R. t( G& \5 g4 `: Q

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

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

% y. w0 A' F5 c+ E) M

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

_htmresc:图片文件夹(不提取

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

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

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

, d7 i3 i$ o3 S, o5 S" n9 ^

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


6 N+ w/ R& |6 M& i! C) H+ Z! M9 u# ]

B.新建文件和文件夹

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

App: 应用部分代码

Bsp: 底层部分代码

Doc: 说明文档

: q3 F) k1 t3 A$ \' \

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


3 O; v% R) H4 O% S

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

0 S( D& h8 l1 r+ w0 u2 O3 I
1 z0 }4 l7 A) g: T, @8 F
20161107104749621.png & V7 _$ K) G$ F  @1 E/ M

( O# Q/ b- l! a

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


* k8 D$ g& d8 k* }! XⅣ、新建软件工程

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

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

3 ^% P# K4 L' ?# U' E9 o
1.建立工程

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


: a, p4 B# F6 p$ z. K! k

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

) w( k: D( {1 w& t2 Y

. V9 c2 u& {' Y+ t1 @& o; S 20161107104819388.png 4 c) P' C8 P- c. [! h% e
# I) i) D% [& @

B.选择路径,保存名称

+ A4 f( ~. t7 Q# E
$ t. r9 r# D/ I( x! O
20161107104848622.png
. v; m' a1 U) i% U+ u& ^& |7 s! w) ]9 K

C.选择芯片型号

+ U  a6 D' \" k" z
, y2 s9 ^  h- V
20161107104900388.png : u+ h" a. B( a1 ]7 y/ c, ^

7 y8 k9 \6 z- w- v" Y: h# x 20161107104920591.png
0 l/ Y3 b1 h$ M; B& V& d  z; M7 q7 p( }' l% L7 X3 Z

D.基础工程


. c/ |+ X3 h; A+ X' y; U

20161107104940217.png


+ h* K3 J1 q6 a; o3 t! R

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

7 G0 T' e& c& Q/ r9 l+ P# d
2.添加文件

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

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

* d8 ]9 [* S! i  C& P, B4 ]

20161107105007373.png


+ P% [) [2 L+ i8 R0 Y/ b

20161107105220202.png

  p. ?+ I2 G. h# o) s  }

20161107105103203.gif

2 J! ?1 t3 L0 U% F8 B6 @: _3 i

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


$ L$ M- Z6 [+ u4 g6 \) c) A

20161107105152889.png

* x, x. ]' m  @, Q& Y# t
3.配置工程

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


3 B, @6 j- J/ h' w6 b

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


& P$ f8 z9 h- O! h+ [

' e9 p7 r; C/ \! z* \7 O 20161107105250970.png . L; k% G8 Z! D. d' z; g
9 D: ~- r+ K1 {) O0 ?

B.输出Hex文件

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

6 K  w$ Q5 R# c

( Y$ D' X8 C  G 20161107105310252.png
8 ^* b: h7 {  b% O6 F3 q. o, x  q! S  A) ~& w. R& D3 y

C.C/C++配置

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

  b, B- z+ [, b1 m

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

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


6 X: h. v6 z: l

20161107105350144.png

% |, D7 l6 g6 ]

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


$ u: |! Z7 ~. l! ]$ h; F( k& u8 P" N

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

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

: E% V9 e0 e! A1 E" _  P6 B

20161107105402754.png


9 l" a. t/ t, V8 M  ]# D

20161107105416676.png


7 I) D6 ~  v9 E( e

20161107105515609.gif

: p- r: s0 S9 ]& h1 i

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


3 z. Z, c% L) Y) t

20161107105634679.png

- {+ _& V: w8 b; Q9 h9 t7 r) A

D.选择下载调试工具

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


8 N4 K8 ?% S& K  r5 W; A

20161107105646579.png


0 L# d( C5 D% s" q& ?E.下载复位并运行设置

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


0 n- _0 }8 T$ ~6 {
  }9 Y2 @: a4 M9 _5 I
20161107105702618.png 3 w# C' T9 `; B5 C) y! k% W, O
7 D' H5 ~# z$ [, F8 D, `4 T* T. l
20161107105712196.png
/ k0 B5 T5 @" v! h1 _6 w7 _) P- C" j$ u% _  |- S

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


# I( r; {9 [- a8 p" f
2 r# {# o' U' S5 @7 V7 N

) H5 v4 j" k2 U/ ~) Y
收藏 评论0 发布时间:2022-6-18 17:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版