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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
一、总述! Q+ }  p/ i/ S/ M; X
    之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。6 p8 ^$ ]0 q! |0 K

0 A( \0 r4 c3 k/ g    我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)
% _" L* I2 P$ M/ w* q
. P( t5 B5 Z6 A/ T* U二、第一步——建目录3 ~- x  I  B. T  p& b0 r* T
    首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)
  ?, e! u7 N' K) R. O
  i% d4 M' d" N: g$ i# q, t. i5 U) z
20190504190020151.png

* H& E' O1 o) Q7 f4 ]" K
6 b2 A- h. N+ t( C  v1 `& @    然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:
2 u1 {( m% Q. O0 R- l/ D2 H" E3 \4 Q! T
20190504190614549.png

9 L" H. M3 N( T
! Q  s7 |# _+ Q( E7 \& i# b# O
  1. Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件
    : L0 n" [: r# L. Q( z* a4 w. Y
  2. Hardware:存放一些外设、模块的驱动程序
    3 _  i; j) n- w. r1 S: v( |
  3. Libraries:存放STM32官方提供的固件库
    ) H5 A' B. J. d" I+ ~+ d' b
  4. Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件
复制代码
8 a( `3 D/ s+ j/ ~. P- h4 X; Q( \
三、第二步——拷贝文件3 V  U% K/ n1 m& H$ {4 j8 {: ^3 b
    首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:+ I% Z. ?/ s  q$ g) k$ k" ]
8 ]- Q& y" d) K4 S8 u! g  ?& O
20190504192108979.png

5 ]( t5 M" C+ ]4 M+ O3 ~4 Q: k! B$ j; }: [
    然后,将固件库压缩文件/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目录下,如下图:. k; x/ F/ X6 ]+ _
& b: V" d! h2 p. C! Q# P, l9 t
20190504192700845.png

; b! a0 i2 o& a# p4 G4 g# G9 D2 I2 U
20190504192802275.png

0 f6 x! c5 e! B, ~( W" H% }4 c1 d" Q+ j/ }, M/ V+ r
    如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。/ F) @& G6 I6 C- J4 D

- c( m, C4 A) t
  1. del *.bak /s- ]; U, `8 y5 G5 h, j  ^  ]
  2. del *.ddk /s8 \) d1 o5 P# C, q; p  P# m
  3. del *.edk /s
    , b; Y' X. F" G# E8 x2 U4 J" R6 l) G
  4. del *.lst /s
    & _  v* f& a8 z6 f
  5. del *.lnp /s$ P: k% r& y3 ^. j
  6. del *.mpf /s
    7 U& @9 O1 ^* L+ B7 F3 F
  7. del *.mpj /s
    $ v  `6 ^# ^- ?! h5 `/ |0 q
  8. del *.obj /s8 M$ v9 A# f$ W* k! y9 R; r- C6 F9 D8 R2 m
  9. del *.omf /s
    3 \' F. w- o: y4 z6 `+ n
  10. ::del *.opt /s  ::不允许删除JLINK的设置
    7 d6 c. g; L# ?5 X: o( d
  11. del *.plg /s: T+ T! R, q$ C- A$ `
  12. del *.rpt /s' p9 Z6 A7 \. k1 A, g8 Z0 |
  13. del *.tmp /s
    9 a/ K7 p4 K/ a
  14. del *.__i /s$ ^& Y, L1 F  B$ G& g) g2 Y
  15. del *.crf /s
    # @) r  m( ^+ j8 I7 a- Y* I
  16. del *.o /s
    ( M3 t# d* O  _: r7 E
  17. del *.d /s! U* O. y! {7 W+ ]- [0 v
  18. del *.axf /s
    / _+ b9 U1 G5 n: G
  19. del *.tra /s
    & |* i( `/ W* c5 Z8 g( `9 P
  20. del *.dep /s           2 D' e! i2 w7 {  V1 x7 s; Q
  21. del JLinkLog.txt /s3 Z. t1 e7 F/ }9 h# y( h0 S

  22. : k. P+ Q: c- y, F
  23. del *.iex /s
    # B7 {% }% H+ b6 M
  24. del *.htm /s
    9 Y) S, i+ `+ e/ u
  25. del *.sct /s
    ' J/ s# b  q- P. {+ `* }2 R
  26. del *.map /s* p- p/ _2 }* S, B5 p, [
  27. exit' ~$ N% H+ q* i) d+ _; Z
复制代码
( b2 e: {+ r- h1 a" u* x3 ]
20190504204015493.png
$ j" n9 e. }( T) b
. [8 o7 ]5 p) c" Q5 S* p
四、第三步——MDK建工程
$ M* S( ^% \" A& _' b2 d4 L. b* C    打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:" a! A6 U: O. L# d  R) ^
% d* T2 l& u% n! J+ s& H
20190504193122668.png

) y  v. b2 B% p1 f7 f# v2 c! F! C; {( A% q" u1 c
20190504193503859.png
, q- R! k' b1 ^9 D, v$ d. M# I
3 r% i+ v+ s# ^% N1 M8 j0 j
    接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。
5 f+ P8 S& i6 Y5 Z8 x
& S% R: Q* D1 U; d; m. E6 P( W
20190504193752602.png
- B4 f' `" ~) m

1 ~8 a& t; w) m2 S5 _3 G3 L五、第四步——MDK项目配置
7 V2 X+ T& G  q8 H/ X    点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。
. z; |- N# `3 D- V( Z7 _: M# Q  |8 k  q1 v4 U7 K
20190504194651573.png

8 {+ s) R  M& O2 y# l
# I% Z! l0 W& F
20190504195332953.png
+ l% @7 m5 c- M

: |4 ]2 R$ l4 R双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。4 o8 s4 Y# |; O! I; E$ G  o
2 d9 ]. H8 n( q& H5 s
  1. ..\Libraries\CMSIS\Device\ST\STM32F4xx\Include
    6 C7 j& e' m' `% X  L1 Z
  2. ..\Libraries\CMSIS\Include
    + \, ]  I/ A) }
  3. ..\Libraries\STM32F4xx_StdPeriph_Driver\inc
    : l% |! w& @' m
  4. ..\Hardware
    2 i0 b3 N6 Y8 f$ W
  5. ..\Driver
复制代码
0 `, V2 \( W% x
20190504195824939.png

; q7 \4 N/ ]+ z3 h! O3 U* p$ l. \, R- t9 t
再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:
% m( m. [9 s+ O* _# h
" m. e8 m- G- e( d- X2 }
20190504200317628.png

+ X: H+ X" V+ o0 K1 K1 A% _, m1 I3 Y/ C8 _/ B8 p, ~3 U5 \
201905042009262.png

) b- L2 {( n* o: H% \4 O9 q6 B1 a+ N7 l: p) E
    在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s
8 ^! S2 w9 j2 ]- I0 P0 w$ f- |, z( V  h* x& M( m, V
    在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c
4 o6 }* R; G2 V& y7 j& ~3 p7 @1 C/ }' s. k# C( b' {+ f  J9 l7 Q+ |( q
    在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件
8 l4 L8 y$ Z3 U! e( y/ T
! I/ x& U* d8 n/ s- o    由于新学板子,还没有用到其他模块,所以Hardware为空。3 z, O% }  `+ d* l4 ?
; Q5 F% C3 {6 Y* `+ z1 g
    最后,点击OK,返回主页面。9 C2 r5 d/ A  F, _( U
3 b2 l* E3 a& r
六、第五步——编译程序

' ?# p* G' P* S9 `4 @8 A5 b    点击下图中的编译按钮,进行编译。
& f; {9 p# F9 W. I' t/ Q" X" C
  k2 P4 F7 F! d' \
20190504202215849.png
2 }- f$ V- J# r1 W& C: i
2 E( u" g  _+ ^! e3 n+ c
    发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。: F2 S/ p/ v0 h+ R) T3 D* l. J

& F5 v, w) R1 L9 k1 X0 Z
20190504202911381.png

0 f4 N: B  R+ F6 Z1 U  A) p
4 |/ M$ i2 A4 ^! x    至此,新建工程圆满完成。: g% q8 Z7 O& I

4 ~' `$ n' d6 w0 X% X
6 v' u/ ^- w6 J0 Y8 M
收藏 评论0 发布时间:2021-12-7 11:00

举报

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