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

[STM32F4] 强仔教你玩stm32f401 Necleo之利用KEIL 5帮你快速建工程...

[复制链接]
blueskyds 发布时间:2015-1-7 17:30
转自 2IC论坛  http://bbs.21ic.com/icview-789904-1-1.html  觉得这个帖子对新手帮助挺大的 快速建工程省去了很多时间  L/ K) S$ O$ f" X$ X  @

6 L- M4 F  A9 g: G2 \以下正文:1 k+ l* p# `5 x1 m' s4 \3 P

" y, H* N: L+ Z( f: s8 X# ]本人使用keil 5有一段时间了,发现keil5真考虑周到,里面驱动库也帮你准备好了。这个新功能可以节省我们的时间,也可以让初学者能尽快上手和掌握这个芯片。大家以后既就可以很方便的建自己的工程模板了,再也不会为了找芯片的驱动库而烦恼。
         今天外我来教大家来怎么使用这个建工程的利器吧。
首先是新建工程吧,如下图步骤:

! Q5 g* v0 H) m) u0 H, y
建工程1.png

) B- E. ]; U7 k
建工程2.png
* j5 b( t3 P# N! |& Y- z7 V
因为我用的是stm32f401 Necleo,所以芯片型号应该要选择stm32f401te,选好芯片类型后,会弹出一个大的面板,如下图:
建工程3.png
红色框里的都是一些集成在keil 5的启动文件,arm内核的文件,st公司的库函数和一些API等等。一个工程最起码也要选上corestartup两个选项,如下图:
建工程4.png

! M. _( j0 O2 e" f: d
然后选择OK,就建好了空白的工程。然后就要对工程做一些设置,如下图:
建工程6.png

% ?; O+ t5 e8 X& a
建工程7.png

6 `3 Q  J9 @8 C) ~
建工程8.png
然后新建的文件main.c添加到工程当中,步骤如下:
9 N. G* P, s9 E. s+ [% B3 p1 ?* y
建工程9.png

, A8 G$ C. h( D- m: Y' @$ ~
然后在main.c文件中添加如下代码:
建工程10.png

) R6 {$ h9 L9 A9 L& n5 L
到这里我们的空白工程建好了,后面我来教大家怎样加keil 5里自带的st库。首先我点击那个绿色的小图标,如下图:
建工程11.png

6 v, k! ]/ D- ^- G$ Q, Z: Y) c
点击后会弹出一个大的页面,然后找到Device->StdPeriph Drivers。如下图:
建工程5.png
" D4 K% [& ~) S* K5 ?4 L# X! p: m; o
点开StdPeriph Drivers选项的加号图标,就可以看到st库目录下各外设的驱动文件,后面是他的版本说明,这是V1.3版本的,是比较新的,建议大家尽量使用新的库。
我这里就勾上了所有外设的驱动的文件,如下图:

0 ~. a$ S0 t& B) w6 m1 K6 r
建工程12.png

* e$ b- Y4 b  I% K+ S8 ^/ V0 W
建工程13.png
" ~" o" `, [1 X- p  F; f% l6 U
然后点击OK后,就可以看到原先工程目录下的Device添加了刚才选择外设的驱动文件。添加完后大家不要急着编译工程,还有对工程进行相关的配置,否则如下图,编译不成功的:
建工程15.png

/ A$ d8 Z: L! ?2 y
接下来,我来配置下工程,右击target,然后进入配置工程的面板,步骤如下:
建工程16.png
% d; e0 k4 N2 A! J6 Y: L8 M
这里要填上USE_STDPERIPH_DRIVER,这就表明编译器选择了st
建工程17.png
$ y, ]9 ]1 i! @1 {1 f" E. P
然后我们来指定编译器头文件的路径

+ `1 U/ t- d; P
建工程18.png
/ ]* `+ c6 e# ?/ F
建工程19.png
* r3 P0 X5 W( o7 c* A% n. w
建工程21.png

" ~( R% |8 T* g& I4 E; I& P) P/ ^5 T
以上这两个路径是编译器编译时要找的路径,这几个头文件至关重要,这里编译器关联头文件所需要的。
1 p& k% p$ u& s# B" M
建工程27.png
# K# t; T  X4 I1 h6 q* s, F% j2 `
建工程20.png

$ B: N* v' g. Z
当做完以上工作后,我们就可以来编译一下工程,在编译时,编译器就会根据我们的配置来编译驱动头文件和驱动的C文件。如下图:
2 r/ x! Z$ r/ n# M+ a
建工程22.png

, B; G( Y9 \6 h
当编译成功后会出现以下的信息:
建工程23.png
下面我们要看看新的stm32f4xx_conf.h里的内容吧,如下图:
, q5 m& ]+ V( C5 k  A  e) C) V5 X
建工程24.png

  X% X+ I8 d" v; W: A7 n' p+ x
可以看出这跟旧版本的stm32f4xx_conf.h文件有些区别,在每个头文件这里多了个条件编译,
大家可以理解成开关吧,就是用来选择编译头文件用的,而这些开关都在RTE_Components.h这个头文件里,如下图:

" C3 k9 m" W( ^$ d5 j8 R9 B- ~2 W
建工程25.png

0 x+ J. U* y4 q% k' \0 L$ ^/ N. _
编译完成后,可以看出main.c里包含了各驱动库的头文件,如下图:
$ O* Z9 z- k  u/ Y+ h; n5 J
建工程28.png
: q1 Z+ ~4 @2 c3 s4 @: x
做完以上工作后,我们就建好了一个基于库函数的模板了。
当大家编译完工程后,会发现工程目录里多出了好多文件,这是正常的,这是编译后产生的文件,如下图:
# a$ K; D' f7 e9 c! |8 s
建工程33.png

. w2 U" h% M! f1 p) _: n
先把原来的产生的文件删除掉,删除后如下图:
* `2 r  r- W1 ^9 z! a
建工程34.png
# D! p7 v( ^* n$ x& S# i
现在我教大家怎样把这些文件指定每次编译后生成在指定的地方。
步骤如下:
首先还是进入工程配置的选项面板,然后在自己的工程目录里新建一个Output的文件,然后点击去,再点击OK,这样就代表告诉编译器器每次编译后生成的文件都会放在这个文件夹里。
7 e) ^' c9 j3 F& }7 L) p9 Y
建工程29.png
2 m) R* k$ w1 `8 E% q( l5 v
建工程30.png
! d; K4 V5 T7 v, k7 t
这个跟上面的一样配置。
建工程31.png

. D; p( p/ d% M0 ]% R4 M
建工程32.png
* F+ f, l* @# Z, T1 c2 g( d
做好这些工作后,就可以编译工程了,编译完后生成的文件会保存在自己指定的那两个文件,如下图:
% ]% f7 R" n) U1 _
建工程35.png

4 J2 H2 h; r, {' t, d/ Q# K0 R+ _
建工程36.png
* F1 j8 J9 j' W5 N
建工程37.png 4 [0 P$ J% f' ~6 E7 l

4 z6 Q' Z0 _( a% d; O
这样工程目录下的结构就清爽多了。

+ o+ p5 l' H8 O3 b5 a+ q- O" v
KEIL 5快速建工程模板.zip (67.23 KB, 下载次数: 13)
建工程11.png
建工程21.png
建工程34.png
收藏 评论1 发布时间:2015-1-7 17:30

举报

1个回答
blueskyds 回答时间:2015-1-7 17:32:39
最后面三张图怎么会跑下来了  无语了
% M, B  |( H  ^% R' w# P3 H9 s顺便问问 转帖是不是碰到附件的图片 只能下载下来 然后一张一张往上传 ?
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版