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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
一、总述# {( ?+ E3 l0 [! |! `7 Q# }
    之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。
. i- B1 o1 \' l7 i
4 k% U1 R& o4 C, n9 D    我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)' u4 n2 b( u$ j. P% T2 S; C4 x

; i) @1 u# x3 @8 W/ n二、第一步——建目录
/ r/ F5 M6 q9 v7 B3 d    首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)7 l, V* @, C: [  Y+ v, z: F$ F
, F. L. |8 [/ u0 w* z5 \) Z# `
20190504190020151.png
7 I2 d$ Q2 `3 g- |0 j( k1 F- K
) j2 e! |8 x4 c
    然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:
2 \! a% I- v7 K: y4 @1 w; n: o
# U% H; A' S% z, L: P
20190504190614549.png

& q  T5 N' a& Q% _$ W+ ~
/ ~, M8 e6 K  k/ G/ J0 n1 y
  1. Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件
    ' v7 T" m% b9 y4 m$ \
  2. Hardware:存放一些外设、模块的驱动程序! j$ w) @0 z- p6 [/ m
  3. Libraries:存放STM32官方提供的固件库
    / i; y+ d" U6 x7 l
  4. Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件
复制代码
1 ~! F( w' i: C6 B5 F: c9 n" t& {$ }
三、第二步——拷贝文件
- w7 g# P- [* X- l7 |    首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:
% g  r" y/ I  X! F- j! v  b9 U8 j# \6 M
20190504192108979.png
# u8 b. L  _* s/ ~2 V

8 I5 D, r/ Z7 z0 z6 [5 D    然后,将固件库压缩文件/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目录下,如下图:
1 C8 s5 S4 U( V9 {7 K* z8 `8 D/ m
) \2 E6 Y8 ]0 l$ H; O
20190504192700845.png

1 N) s5 i% l/ C& t9 O8 I% }0 r6 b& M, T+ b3 ^0 G1 d) l! |2 W
20190504192802275.png
% U7 ?- F3 z4 t: `& C9 t/ z3 e, d

6 r( V0 h( ]- z. I    如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。
- C6 f  C8 J1 S" F- }+ }3 H
- u5 i! V. G# v: x; T$ K
  1. del *.bak /s
    * N' Z* ]' a! z
  2. del *.ddk /s& C" R# P. n9 X% l4 Y
  3. del *.edk /s) `; g6 F8 a9 _3 O6 f7 a& w5 o4 v
  4. del *.lst /s
    1 u% f9 t' A8 u# \. Q
  5. del *.lnp /s- R  r- x6 {' R& L5 Z
  6. del *.mpf /s
    7 @, J0 C$ i  e7 r
  7. del *.mpj /s
    6 F* ?" ^! V; |' r# }
  8. del *.obj /s; W4 l+ Z0 o$ U) w
  9. del *.omf /s( ~; B6 X. w! B; m, \# d8 A7 s. M
  10. ::del *.opt /s  ::不允许删除JLINK的设置& f6 p( W2 k" L. b! J: ^
  11. del *.plg /s& m7 H0 i" }  `
  12. del *.rpt /s* l: ]. r* d* X' J8 j  C
  13. del *.tmp /s
    ( ]+ K) |% }& {" z7 }! P' i
  14. del *.__i /s/ s- R7 p3 Z2 ^
  15. del *.crf /s
    # [9 v/ q; M2 b% G2 C: d, e7 Y
  16. del *.o /s8 [/ |) C# V8 d6 E
  17. del *.d /s3 n5 s" f+ f& N
  18. del *.axf /s
    + X  X! J: u0 H, p8 o
  19. del *.tra /s
    & e9 Z4 ]) r, i! b
  20. del *.dep /s           
    7 U2 f- q' {' f
  21. del JLinkLog.txt /s# M! {- M- Z5 V/ u

  22. # m* |8 M& V0 }$ k" Z7 H3 f
  23. del *.iex /s
      y7 o2 K8 |  d' O
  24. del *.htm /s
    2 o! b. u! L& i% u! {  m& m3 s; l. f
  25. del *.sct /s
    : p: s  _1 S6 u6 o
  26. del *.map /s
    3 Q' F+ }! E5 S/ o: Q
  27. exit
    % p1 X! M. c, S: `( j2 u% N( r/ d
复制代码
$ U6 H- i5 h8 q9 E4 u; I/ }
20190504204015493.png
' V: E) b; a; j) V3 i( s8 T8 m( g

; G" y# }: e! I  k& s& E6 a四、第三步——MDK建工程
% M7 k7 q. c) r    打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:
; b2 q& Q. I7 t7 ~7 t4 b: H( ]3 X, z/ p# q; ~9 [/ U
20190504193122668.png

. W3 [- _4 v7 o1 n$ r( @" I0 F* `1 w4 O
20190504193503859.png
) x2 ?$ `+ u% }
$ i( J! q5 \, z
    接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。
  _8 E1 t* |* R2 C( `' a3 J. X7 U3 o3 N8 A
20190504193752602.png

% ^" S4 n" B+ N4 G! A% d' j1 t" E
, M) t4 J" R- x- `五、第四步——MDK项目配置/ }, }! Z8 E9 M# N- W2 f
    点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。
; q# l  E4 f% r- ?  ?  V. Z& v* ~9 f% H1 G/ A5 O! y" `" Y. y
20190504194651573.png
! j* U6 s8 Y5 P$ z+ P

, i3 t. o! z* ?; G" g& |
20190504195332953.png
5 q7 F% O' |& M- h8 L

7 w& }6 C; x5 r! S0 o. p$ ?双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。
* a* _: d" B3 o% r& N" @1 d5 I$ [, K7 n" C
  1. ..\Libraries\CMSIS\Device\ST\STM32F4xx\Include
    & q+ u- d, _1 c: ?) L
  2. ..\Libraries\CMSIS\Include
    : O0 b# n' X9 a
  3. ..\Libraries\STM32F4xx_StdPeriph_Driver\inc
    + x! i7 \" |8 H8 W
  4. ..\Hardware
    : p. n5 ?  r6 J% n
  5. ..\Driver
复制代码
1 u& ?8 u1 e9 w8 f0 G8 V
20190504195824939.png
1 M: t% f0 Z/ c" V
- i9 y0 V' u7 N+ @; ?( ]5 Q- z2 B0 h
再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:6 d( H* q5 ?2 A- X7 |0 G7 b

+ z( e! x2 \4 U! [0 i2 y' j, ]; ^9 L
20190504200317628.png

3 [- P. u, m. D- l7 W4 l/ C
1 D0 y8 N1 x  u+ \) w3 @
201905042009262.png

1 f1 v  a" @& w. q& A. k& p
% H, u  s3 H6 c    在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s
8 }6 y5 O6 [! n6 h
$ i0 j- a: b3 t# {- ?4 T$ N5 I    在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c0 P3 O) Q+ J! j
+ S2 r, N7 [0 F
    在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件
! T4 d, W& z* Q  p, B. L- n+ A, Q& ]; E/ h1 ?
    由于新学板子,还没有用到其他模块,所以Hardware为空。
! j) H- s' t) b/ B! T4 v
$ x5 [: P+ J5 G3 k9 N# c! c    最后,点击OK,返回主页面。+ k1 Y3 S! r3 u6 I6 |. O7 d" o

6 [( j2 v+ y8 L+ J$ z: Y六、第五步——编译程序

6 r' Z9 y! y* e. W$ O) I    点击下图中的编译按钮,进行编译。! j4 Q/ n2 I/ A3 a7 H9 i

- @$ e8 r  T/ R8 j
20190504202215849.png

7 T. J% Q1 F. L9 }6 v% R+ f
, Y( f; x: a6 j4 j' @    发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。+ X  X( I4 i# @! l/ z, q0 {
* X4 i) r" T3 O( z
20190504202911381.png

1 U" H. |8 J# R4 L' q& N6 z! p6 ]* h9 ]# O
    至此,新建工程圆满完成。
5 C/ S# L5 G0 l# M: U8 }- f0 t" L8 n2 Z9 W" E6 _% ~% B

% o9 W$ F$ F: T6 D
收藏 评论0 发布时间:2021-12-7 11:00

举报

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