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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
一、总述0 h" P1 K% n1 C" F' [% n: f4 u
    之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。  y* X+ O* r& ]5 C; F9 m

, A8 ?/ W) j0 x- {3 I    我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)
4 T8 v* |9 g) ~$ r( p8 P$ y+ ~; o) s
二、第一步——建目录
1 g* |: u+ c* U. C    首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)
" i  X1 [6 ?  I1 s: y; L8 U) I; h9 r& F( l" G
20190504190020151.png

$ R$ V: L! Z, m) u% H0 A8 s6 N8 z4 }% R0 F" D( F  l: L4 H) h
    然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:7 `+ u% P, B: X
3 R0 ^( g5 {3 o" l* Q
20190504190614549.png

1 X  v; w! l- _, s' E& z" H  \, e3 ^( o! a5 f* O, Y
  1. Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件5 B% z+ F5 z* j
  2. Hardware:存放一些外设、模块的驱动程序1 d6 n) T; E) Z
  3. Libraries:存放STM32官方提供的固件库
    7 m  t4 l& i7 z1 R. \
  4. Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件
复制代码
. H* D1 m1 }3 z4 h
三、第二步——拷贝文件" Z% [2 [0 A4 ~! T) r. @% W' A
    首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:
, N+ h' _- }4 w5 y3 z# q0 R) E
5 C* Y* r) p5 o
20190504192108979.png

" ]7 k6 d( q7 l+ Z, X/ Q& \6 V1 x, \7 l
    然后,将固件库压缩文件/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目录下,如下图:) f0 q8 {4 D4 Y+ m4 `

6 f$ b+ p3 {  v( D, ?6 J1 K/ N
20190504192700845.png

$ F- m4 G( o7 k* c! E& z
, H# A- x9 v! M. y) K3 m
20190504192802275.png

* |+ V9 u% T1 d* I6 O" T# C& O# b1 g9 Y2 O
    如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。
3 P" x" l8 d  u% e) M8 X! y+ w# N
$ l: M2 m' F  W2 @1 G" M
  1. del *.bak /s
    5 M: L4 H# U: i: c8 B( [
  2. del *.ddk /s- V0 ]! r( \$ a* D0 j1 ?$ p& \
  3. del *.edk /s
    + b' T  E& p* A* f: f- D7 k
  4. del *.lst /s
    % k* R8 J. x$ I1 {: s. I
  5. del *.lnp /s3 w( `0 [' n0 L9 Y( t' {9 o
  6. del *.mpf /s# G. m5 [  M' L8 v9 K& n
  7. del *.mpj /s
    " A7 F: ^7 }5 a1 a' r
  8. del *.obj /s
    7 s- k  m/ [( ?) `6 z. l
  9. del *.omf /s
    ' Y2 w$ A) T  k) T2 z: X
  10. ::del *.opt /s  ::不允许删除JLINK的设置/ G9 {/ N5 C3 ]5 p
  11. del *.plg /s" j$ J% [+ g! S: k; ^7 Z
  12. del *.rpt /s8 P( y  l# ^3 t- ], ~" {7 j/ w
  13. del *.tmp /s) Y, k  K* z* W" Y- i  }! L  M
  14. del *.__i /s' K$ @& i- M! C! K* H& V% Q) L/ I
  15. del *.crf /s
    0 M' ~- v% A8 ]7 Y! u
  16. del *.o /s6 [- ]( d# L, t* S/ P2 b
  17. del *.d /s- w0 a) p  U9 d& g0 ]
  18. del *.axf /s1 Y* i) Y- `6 L: H( Y( _. y
  19. del *.tra /s& E7 l& t- d% T8 U( u+ K$ c0 w
  20. del *.dep /s           " N* h! C4 j, n( L" [' u( ?
  21. del JLinkLog.txt /s, ~7 `# g- c% w
  22. + p' l/ f8 a* g: o5 y& w- V& N
  23. del *.iex /s& x6 ?. _9 K& I
  24. del *.htm /s: V  a6 ^) P) u2 b7 R# T& X
  25. del *.sct /s' M$ K( `$ |. F
  26. del *.map /s
    2 W% b$ g$ p; t/ }9 \7 j5 }& p7 l
  27. exit
    ) p" O  ~. B% z5 V, Z5 r
复制代码

! ~+ d0 v: g& f, e* U
20190504204015493.png
9 E6 f) V8 C/ z3 V. ^

: b& ~1 H* e4 S四、第三步——MDK建工程
% E5 F- \+ `# P) n3 z  G    打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:
* v% I3 ?+ P  F( A3 S" a; M
) i+ E% g, h: t2 B0 x1 h
20190504193122668.png

0 H# s) j' L2 _) l3 l
) m$ l! a# I8 f
20190504193503859.png

  |2 `" h) U3 h0 L1 e
; @3 t5 h/ w9 p5 @# w; r4 O: K    接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。2 O( p' K! N! @; ^
$ c7 z# d- O; U& _: D
20190504193752602.png
7 \8 ^$ _4 M) }7 t; h- y

0 ~+ N# y7 B2 u# W  I五、第四步——MDK项目配置
  ]+ m0 |- h- p1 b! G. N    点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。' W& W# h/ K5 T+ N# h$ j! N
0 h& B5 T8 S7 ~5 ~0 x, T4 x; h/ e
20190504194651573.png

+ `( {: x5 j9 {" T4 [/ d$ N4 x+ Z$ P3 e1 Q
20190504195332953.png
; o% `8 g6 y/ f) f" a
/ X3 ?- ?" O' R; C6 v
双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。3 i0 G9 z  L+ h! i# q/ }
; |6 G* k$ C5 ]* B% @2 E. w% h, H5 f
  1. ..\Libraries\CMSIS\Device\ST\STM32F4xx\Include6 _5 w2 r) K1 R7 @
  2. ..\Libraries\CMSIS\Include
    / ]% r& [0 t' X. K5 m$ o$ ]
  3. ..\Libraries\STM32F4xx_StdPeriph_Driver\inc
    " Z2 t5 r- G, q! N* }# z5 W( r
  4. ..\Hardware' X! i, J( g# D7 }: i
  5. ..\Driver
复制代码
2 G5 M4 N; N" p; E. m$ p
20190504195824939.png

& m3 _3 O' s+ C% y; q+ r
! E+ }" S4 i8 a3 M' K再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:) X  E. ?& u; D6 o$ w
' j/ n2 i: A2 z2 ?- g. f2 n
20190504200317628.png
6 Z6 p, v+ H- A8 ]
: ?2 r8 o! J5 l
201905042009262.png

" y' T$ B; j- ?& k. a! y; A: ^: o  f% J% h) D
    在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s
# A# ]( Y% G4 I) V7 y" B
3 x, {" r3 Z5 O- Q, ]1 K: R( V: v    在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c# ^0 S; R0 J; U6 V7 [. d
4 q0 p/ S; t. e* v9 p: d9 P
    在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件
9 l' s' V& F0 }7 z2 ]: t% ~4 l' p0 U: e) i- T
    由于新学板子,还没有用到其他模块,所以Hardware为空。) f4 P9 X; F$ y- d0 T" D

* k( c: k7 [. u: d0 D2 U! |    最后,点击OK,返回主页面。
! m/ x0 h" @2 _- s$ u" o4 P+ E4 U, V1 |- B% p
六、第五步——编译程序
- K, @, ~1 y; J2 o: G! u* j
    点击下图中的编译按钮,进行编译。
5 q0 ^/ x% e6 E8 [  @0 I, J5 |9 d
, n1 C, a2 p' v5 ^& X
20190504202215849.png

; z' B5 N% B) P. y% L5 ^  z; {& K) [" C' @+ R
    发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。! Z4 c  H% K0 }8 k* R# H
( E% g7 e& d% G; E
20190504202911381.png

! z% o. ?! J/ R/ r5 o
3 W: H. ~( b8 O" m    至此,新建工程圆满完成。
: m' t$ O9 w% s2 L$ m3 s! e' B$ \2 f- |' G
+ j5 c  i4 v8 W: T: e" W& R
收藏 评论0 发布时间:2021-12-7 11:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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