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

【经验分享】STM32F4开发-新建工程

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
一、总述
' I- e2 o! Z" }    之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。
0 y# w6 Z% d% ]6 }% H# L% ]
; [) S; V* r: f    我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)8 ^  N3 w& b- D8 \1 O5 h% }9 D

4 }  t$ d9 G* ~2 `: O2 P% L2 q二、第一步——建目录
  @  p1 ?% v; a0 e; T' R    首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)5 O! w+ S, [8 @
$ L) v4 E% o/ M( K2 _! ^) P
20190504190020151.png

1 b  ^  v  R9 B! y  A+ K( `6 i5 D6 ~' @% X5 y  N) D
    然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:' W9 o2 F. C9 D7 ?

% u6 G& `/ u- S! B" f' H) b
20190504190614549.png
0 }8 `* u6 o! i

! P$ I6 o) w# N7 D+ X$ g5 b
  1. Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件% w/ N" r5 P+ ?" f( `
  2. Hardware:存放一些外设、模块的驱动程序8 X3 q% v5 [" q& R5 I# z8 S
  3. Libraries:存放STM32官方提供的固件库% Q# _2 `6 b" ?- p3 C7 l) c+ I
  4. Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件
复制代码

- o* [% w: {' q3 A4 n3 z三、第二步——拷贝文件
) u  M9 h# Z6 U    首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:8 N3 m& C4 N. d; f

+ y- l- h2 B1 b& I0 U4 I6 O
20190504192108979.png

* t6 c# w: @; J2 G! q; _  w- _7 j4 [4 f
    然后,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Project/STM32F4xx_StdPeriph_Templates/目录下的main.c、main.h、stm32f4xx_conf.h、stm32f4xx_it.c和stm32f4xx_it.h解压到刚刚新建的STM32F407ZG/Driver目录下,如下图:
8 z' W0 U- p! h5 J
1 K9 D# b$ S7 F
20190504192700845.png
5 G* }/ L4 _  B1 i+ V

3 g0 Y6 f5 m( G8 b; ]) {
20190504192802275.png
% D5 x8 P4 a0 `/ e; p

( t7 a! M2 v& S- ~    如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。+ p8 d7 B1 ]9 k# O: o

8 `9 @7 i4 F# N2 q7 ]9 L: ~! a
  1. del *.bak /s
    ; P6 I: Y# k  P: A% H
  2. del *.ddk /s
    : R6 i( U' z# I; c8 C
  3. del *.edk /s6 Z+ L: Y* o9 p5 X3 o, N
  4. del *.lst /s& R5 v1 s' G7 o% p0 Q/ E
  5. del *.lnp /s. ~  T) U4 M4 u4 O1 \4 q- \1 j' e, M
  6. del *.mpf /s
    : h. x3 U: K2 P! _. S  T
  7. del *.mpj /s
    ! @9 {  c0 `4 o9 j
  8. del *.obj /s
    # E( b+ _+ y' r. N4 a4 K
  9. del *.omf /s
    7 z) E, k5 ~) o% n% }8 o
  10. ::del *.opt /s  ::不允许删除JLINK的设置# t  w& c6 s/ `* }7 q& F: `9 |
  11. del *.plg /s
    7 p9 t# b# w7 f* d: u5 @
  12. del *.rpt /s
    9 t: F+ j( a9 Y0 w9 B
  13. del *.tmp /s3 B  u1 h. y6 ?1 u7 k
  14. del *.__i /s
    ! p, L7 ^0 N, M9 f' Y2 q
  15. del *.crf /s  O1 i! A! }# ]" k' t& y; {
  16. del *.o /s; ^/ [) f* Q2 [% l2 C
  17. del *.d /s
    # D) ]# A. I6 d* x9 y
  18. del *.axf /s
    ' D7 _7 _8 w% f; r/ M
  19. del *.tra /s
    ( }* H7 p! d; ]( `5 D7 j
  20. del *.dep /s           
    5 z# x1 H: t9 d5 h- u1 C
  21. del JLinkLog.txt /s* K! [, w" o" p" f" ]: n5 z
  22. 7 j( P$ r0 `4 Y9 R
  23. del *.iex /s
    ( h5 z; o1 j' {. K& w) U% e) h
  24. del *.htm /s! z* A* L7 @% g5 g; J
  25. del *.sct /s
    . d/ S: Y' X! G" K6 M1 ~; M
  26. del *.map /s
    $ l* }+ g1 A8 n6 m  d
  27. exit
    7 C4 z- Z9 F, J/ b% J& v
复制代码

  {. n9 U) y: C: O+ k- d; b. g
20190504204015493.png

" {. v2 i4 q* _8 x2 V2 l1 R# e9 f# {/ w8 A& \9 }% U+ S6 R2 `7 |9 t) c& m
四、第三步——MDK建工程
3 g; @9 T" a7 f  S/ [. @    打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:$ V* R/ X! j" E+ n3 b
$ D0 s. S' T. y* I+ V1 [
20190504193122668.png
, Y. Z4 c) \5 a2 ]

5 V8 ?; I8 W4 t3 @$ ^' i5 k, w
20190504193503859.png
- m+ h4 d; @; W8 V

& M. |& u/ g4 _+ w9 G. i9 Y6 F    接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。
' R/ E3 B. D* U5 b7 P5 w) H  \
20190504193752602.png

4 N# b% n# |$ t
2 N. T* a& r8 B: M五、第四步——MDK项目配置
+ O4 D, E0 o% ]5 l9 m( [" B. C3 h    点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。
; t( P# B+ X2 w' U/ x! k0 G! X# `
) Y, z7 V4 h8 e; e4 J; K
20190504194651573.png
- \" A* T5 ]' h, ~

/ y3 W" q8 A1 j" O
20190504195332953.png

9 x) q+ s0 Z* b( ?+ \  o) X8 j$ P# F9 F( [6 p- H* p
双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。
1 D. ]1 @# _) O& W+ Y+ Y4 T0 h  `, K  A% ?5 q
  1. ..\Libraries\CMSIS\Device\ST\STM32F4xx\Include" ~8 a. Z1 c; u0 U; I
  2. ..\Libraries\CMSIS\Include
    : z8 i  P; z  D1 f1 E, s
  3. ..\Libraries\STM32F4xx_StdPeriph_Driver\inc6 V+ K: m& z1 V. N6 w7 W( n
  4. ..\Hardware( N' t" u% @8 F' I% K6 Q
  5. ..\Driver
复制代码
2 A/ O+ D" ]7 p
20190504195824939.png

& l8 Q( a$ R- S0 k6 V# M5 ?( K. I6 w, Z$ k
再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:$ R4 z7 f$ L& |6 M: {) {0 N$ \

5 \: M9 W/ N& P" |, ?4 }
20190504200317628.png

8 }' E$ a& q" W& m
1 z0 H9 x9 i! B, e* z# p
201905042009262.png
8 i* W3 `: N3 k8 [0 I1 G) q. ~5 w
7 A( p# B* q* u. w
    在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s
+ S0 S* h/ D% B! W
$ D$ R" s! N! _* m& c# m( j' [    在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c
; }9 g' {" K3 k; ~/ ?, o
* F3 ^* ~: Z, N7 ], B6 {    在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件. h0 D+ M) p' a4 r' C3 y4 R8 @

) c" _7 z/ C' R% e1 ?    由于新学板子,还没有用到其他模块,所以Hardware为空。* s1 B; e5 A1 ]. P/ E* t0 s# T0 `
% b: d5 ]9 i7 q3 e) I* H( p2 g
    最后,点击OK,返回主页面。4 }9 e! {) y4 }" y  A

5 T- Z- ]' G$ _. M, N六、第五步——编译程序

/ j* L7 k' i3 `1 ?$ W9 \7 R" ^) c9 A    点击下图中的编译按钮,进行编译。
$ h9 d5 ~- y+ X% X) H- g# m
& S5 M; P) \4 a6 n
20190504202215849.png
) k; y7 b: f6 H# r# c
. I: r! ]+ o0 O  E, B/ R
    发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。% n! c; z& F2 V1 e2 r# W' F

0 D2 |; }" x( C, C( {: C- m* [" h
20190504202911381.png

+ ?5 J& X) k$ u4 b/ {
& N$ g$ I. h0 \7 q; d    至此,新建工程圆满完成。
: @  Q! e3 Z7 _$ `5 f" J
2 B. H$ z+ C5 T
/ {8 J2 T/ p9 L4 I& q( s
收藏 评论0 发布时间:2021-12-7 11:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版