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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
一、总述
: ^( \9 Q! j5 T  P  R* p    之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。. Q- ^* X' \/ h7 ^! n$ _
5 _2 ~8 W/ O9 I5 r) r
    我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)
$ j  p! I# z& M3 l, [$ A# h$ p1 a8 E
二、第一步——建目录
, {! C. u/ m) G+ Y    首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)8 m5 |$ }& g, r" q! s
+ w: v- j( `2 k. ^
20190504190020151.png
- R0 X1 F$ v, g
, y6 E. G0 z9 B+ V
    然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:  X2 u) o0 j) ?
8 u" D& i# l0 n* v2 p' y. f/ ]
20190504190614549.png
/ D. @6 E; z" }+ d0 N7 Q
' ]& W. @; c. @' d: n: v8 s. }: n4 E
  1. Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件- f; D: g5 D2 S1 {# H1 A# ^' j
  2. Hardware:存放一些外设、模块的驱动程序7 u$ I0 C" j. G/ k
  3. Libraries:存放STM32官方提供的固件库
    2 B& H, v. w+ e3 o! u! U9 I
  4. Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件
复制代码

$ U$ c+ n5 ^& A: ^% C# Q( Q三、第二步——拷贝文件8 h2 L: K. \4 s5 {7 ^
    首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:
. W1 x0 s; p; z) {1 Z+ G0 [4 B: E0 s. f( h
20190504192108979.png

' @& P) {# T' D; k6 i
, q6 t1 `" W0 M/ m2 _7 D' H5 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目录下,如下图:
5 s- v7 V% x  c6 C7 y+ N
: O6 a3 C* N+ t$ q) J
20190504192700845.png

( U% y3 N4 _* O7 m5 t
( O5 i8 n$ m1 r* I5 f2 `/ t
20190504192802275.png

& J- W! }2 b8 @1 U1 Q# o: W
% d! S/ h' ~# r8 ]3 b& @    如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。
% D' V5 ~3 E! v+ O) R! |. e
. R+ R- F0 ^8 ]& Y
  1. del *.bak /s
    $ x3 _' J! O/ j" O' C) z
  2. del *.ddk /s
    - M; Q  e1 S& S2 Q7 t/ J9 D2 R- K# C3 m
  3. del *.edk /s
    ! f( A4 a3 v: I0 E# b
  4. del *.lst /s
    " j9 L% j- s% b9 u5 z
  5. del *.lnp /s0 m7 V% D, V3 A7 O, [
  6. del *.mpf /s% {- u% ?. {% q/ ]8 V/ K3 Q
  7. del *.mpj /s
    6 p1 y" }% n4 w1 ?& |' e/ w9 \4 {
  8. del *.obj /s( X( o7 u/ }9 G+ q5 H$ \
  9. del *.omf /s
    : T& A* _3 A5 A7 G2 E9 |
  10. ::del *.opt /s  ::不允许删除JLINK的设置
    ( e) q8 x( }% m4 g. d9 M. R
  11. del *.plg /s
    + w0 g( h! c! u# q% Q
  12. del *.rpt /s
    ' e/ [. s% Z! w6 s8 ^9 R# O) A
  13. del *.tmp /s/ j& r( l. v9 K# s; @0 }1 L
  14. del *.__i /s
    - |" E. `9 ?" f9 `. e
  15. del *.crf /s
    7 L2 U* v, v1 D8 r! Z- h
  16. del *.o /s1 C' I9 J% ?$ t! D
  17. del *.d /s
    5 l% d& B  _% b
  18. del *.axf /s. z, ^- c7 d( q
  19. del *.tra /s
    : U4 s7 T5 H; B4 F7 x/ t' v
  20. del *.dep /s           4 L6 u6 v8 C$ ~- U9 p
  21. del JLinkLog.txt /s
    7 e! }9 N2 e! T; x& S4 J
  22. # q0 J* }% v! F- K7 M; r
  23. del *.iex /s9 ]; ]4 }& ]) j  J6 r( S* ~4 |: _
  24. del *.htm /s; ]% Y! m0 R5 Q* X3 M, q
  25. del *.sct /s
    6 o* W' b5 b( q8 C* f0 W$ v
  26. del *.map /s
      q5 |4 C: H" r3 y8 D) L
  27. exit' k: o3 p) ^! p3 @+ P- y& {; P
复制代码

7 G) F7 ~% }, {* o% F& M' ]3 v
20190504204015493.png

5 ?$ d/ W6 Y1 W  j) n: Z3 i9 C7 s2 V/ G9 B* J
四、第三步——MDK建工程6 q- ]% {" ~' I! P& z1 c2 j: X
    打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:
2 w# j; B9 A/ v# [& s2 ]8 c% ^& F- l& n- G
20190504193122668.png
0 F, q8 W: Z: l" K3 |
- a+ n2 P. b) q1 b* i/ {: b! [" L: U
20190504193503859.png
0 e& F/ h; v* Q! w/ C# t  D

) K% o. `0 \/ u* X    接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。* A& i& ^' r4 g# g
. f. P* W* L, B* b
20190504193752602.png

' y. E" l7 Q9 p7 y9 A
* }8 D' Y3 o* _五、第四步——MDK项目配置' z0 t2 Z& R- W- t
    点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。
' l: z' @. `, N! R, B0 _) L* X$ N$ M+ m
20190504194651573.png

9 d) v! _- _% l8 [
2 X. O$ x3 \  O$ R. q
20190504195332953.png

# G3 _) s! U. |! y- W7 \. P0 m7 R' A" s+ S) t
双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。' S. d2 f* s6 C0 {/ a$ H( N

8 h3 A/ }4 }% p( L" n) R/ Q+ o1 m
  1. ..\Libraries\CMSIS\Device\ST\STM32F4xx\Include# W$ s) e! X* t! k2 c- R, M* U
  2. ..\Libraries\CMSIS\Include
    ( J' G0 ^2 j; g$ r& m
  3. ..\Libraries\STM32F4xx_StdPeriph_Driver\inc
    . s9 k, c0 s8 z+ v  r
  4. ..\Hardware
    , Y$ P( b" W7 s8 V
  5. ..\Driver
复制代码

  \5 D2 {) o/ N" H# L* W7 T- \
20190504195824939.png
7 ?) g7 z% @; E+ W1 K& A6 E) D% A9 a
! o4 a( T. r0 ~9 V" u0 e: q! n9 J
再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:
, `: Y3 z" z7 `% `* l3 H. _  F
% x" |' x$ V0 B- _( d) D
20190504200317628.png
! V$ h" ?- n9 e7 L9 F- T

' f7 l1 y) @$ ~& g! B' _
201905042009262.png

& Q: M" ^& w! h$ t) Y9 l6 Q- F
3 W' s- i3 i& E. t$ |2 y( {. o* i    在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s
# I9 r+ Z# x- ]- O, I- ~9 U3 i) w+ D* Q# ~6 U, }
    在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c
6 J* B5 ]4 I8 u3 n
* ]$ N# t; I0 N$ V1 a  y    在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件
1 q* J# v2 {1 q9 `9 S  N6 x  m3 r; Z. g1 t5 n% b
    由于新学板子,还没有用到其他模块,所以Hardware为空。3 N# S. G2 y6 g. b5 h  ~& x

" u0 U" W9 v$ U# A2 \: r) X3 t    最后,点击OK,返回主页面。9 O. n& s$ Q7 ^3 {+ k7 M

# z4 G4 c) {+ e, `! u六、第五步——编译程序
, \0 i! f( U5 H! ^; S9 N8 {
    点击下图中的编译按钮,进行编译。+ m" A/ ]5 N2 ]5 d  l" c$ o
' b! P( A' _2 ~" Z+ C
20190504202215849.png
: C! f; h$ Y; ]( i

6 F" V& h$ |# [8 N% S$ R/ F    发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。
- ]; m  D: `/ ]4 j* \3 T* r! h/ }, H2 v8 X/ g
20190504202911381.png
5 j" R& U/ f2 ]& p7 L5 s  ~

2 i5 b$ g$ D4 f: I- T5 ^* w    至此,新建工程圆满完成。/ J: H) ?1 l% i

* K; c& F/ K, ?1 u
$ G( J# c6 w  J6 i3 d
收藏 评论0 发布时间:2021-12-7 11:00

举报

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