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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
一、总述% F, q! N7 t  p9 |  {5 J
    之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。
1 i) S+ r  J/ X% k, F' ^; B! U4 {3 ]3 m# C2 Y# X+ e- j! q
    我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)
# |8 W) G! l" n  w$ l; i/ k5 n7 E, {/ e
二、第一步——建目录
% J" b( X5 G7 @    首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)
. D* t% M1 E; [+ W( _) G6 K: s5 y& o0 [
20190504190020151.png
; D2 |" T" z+ M; E. H

; |" r5 z) x' d    然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:
( s, t2 a$ y0 B) {7 Z5 G! Q" c  A& U, \8 \
20190504190614549.png
* Z+ G1 k3 d0 y4 K

' e4 V( ?- [6 F& s3 k/ V: g8 O
  1. Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件2 B3 b( n4 X2 r$ l0 |$ A
  2. Hardware:存放一些外设、模块的驱动程序
    6 j7 B# r% l1 l9 E+ u2 }5 e3 M
  3. Libraries:存放STM32官方提供的固件库
    0 j( E5 F( Q& w6 B7 k' Q
  4. Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件
复制代码

) u, p+ _* D- e' W! `6 k' g) z. O三、第二步——拷贝文件
" f, r5 X$ q4 R$ K  k0 E    首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:
& U+ W, O: k1 i- M( m. O4 k! v8 q' B, K) M
20190504192108979.png

9 \4 `8 [1 j* i" T$ n1 s' V$ x
9 }' @2 V: F4 z0 q    然后,将固件库压缩文件/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目录下,如下图:
( i3 r! A4 D" N' y+ a6 M, E: d) b5 F5 s5 b' f, C0 g
20190504192700845.png
& p4 `! p, b6 p- Y; K

# ^' d& l/ R" N/ N8 C
20190504192802275.png
' y* D) ?7 H7 n' a* ~9 c" Q
+ }; Q  s; y' v9 X8 t; S2 O( ?
    如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。( G! Y4 I1 K) Q8 N' h

" x- L: @$ f8 A, b$ p) f8 f
  1. del *.bak /s
    - o/ j- G! P1 i( ~
  2. del *.ddk /s
    ( z6 i& C6 ~1 A9 g1 F- P) B. ?% M
  3. del *.edk /s* }) ]9 d9 t0 V! _. G2 J
  4. del *.lst /s, l+ ]0 z$ ~  y) d# N
  5. del *.lnp /s
    - A' D7 W( W. r3 Z
  6. del *.mpf /s
    & U4 w, c& p- ~- R7 \5 l7 E
  7. del *.mpj /s
    5 t+ ?2 B0 L- J
  8. del *.obj /s2 x2 R- @' L% o2 b: U5 U
  9. del *.omf /s
    , `; [5 q2 z( c
  10. ::del *.opt /s  ::不允许删除JLINK的设置
    : M# j0 T7 T  ]" r9 `
  11. del *.plg /s
    * r* v, h- q$ h' g& ]( c
  12. del *.rpt /s
    & }* ^0 p4 M3 H1 T) Q0 Z
  13. del *.tmp /s
    & I  j9 s* n5 o- I+ \
  14. del *.__i /s
    * q  `, Z5 x7 K, N. m4 j
  15. del *.crf /s
    + A7 G1 B6 ]0 x0 b! ?
  16. del *.o /s* A6 K0 I% l% A
  17. del *.d /s2 i+ W% w7 q; v
  18. del *.axf /s, y6 r! A) h7 E" Z( B+ m$ _
  19. del *.tra /s- Y) _2 D* f3 r# @
  20. del *.dep /s           1 e. L. ^0 A. G: c
  21. del JLinkLog.txt /s, u! P7 o$ r% P

  22. 7 J$ l) W! u& n, P6 E
  23. del *.iex /s
    / U6 `5 s* j5 Y1 E
  24. del *.htm /s
    $ d& z$ j' i) u
  25. del *.sct /s
    3 D$ d1 u/ j9 {% n! U
  26. del *.map /s
    7 X, U# b0 R; ], l
  27. exit
    $ _+ c0 B) k8 j# W5 [
复制代码
$ R6 o  K1 R* m" y* X
20190504204015493.png

/ ?6 }3 p0 E" P- V8 E; f5 W6 M& Q; J' }
四、第三步——MDK建工程
+ L( e" ?4 D2 A) y3 S. u# _    打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:4 ?- N8 u1 U# Q* L% D7 c6 B1 ^
  P7 F% @8 q3 A$ W* q2 g
20190504193122668.png
+ `9 q; e9 i, x* e

" P; i; t' Q; q' {$ D
20190504193503859.png
2 V5 S3 A4 B; `2 ~+ O2 |5 ~5 _. F4 C$ {

6 G) E/ y% j) u3 X3 X* r& G    接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。0 Y, t6 a$ n: M1 w1 c

9 q) Y. Q& s+ {$ A
20190504193752602.png
7 l6 V5 ?7 M  k6 P* W' }

9 h! M8 E( P  {7 W. H& M1 e3 i五、第四步——MDK项目配置
/ L! `, D$ B$ O* \7 M' r2 I- v    点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。
9 b9 e& [0 v9 C
* `' p- V/ M0 E$ c; U4 Q* |% `
20190504194651573.png

$ G3 L9 k3 p; C+ {# z) n- z, ]8 u+ {( c$ T. P2 f3 j
20190504195332953.png

, p8 s5 i- Q) l) h; Z3 J, b! B9 P! r8 @0 q6 E( Y% P
双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。8 O6 Y2 V3 y. X$ p3 _% |5 I
4 j. f1 C4 r6 J7 f. l/ G
  1. ..\Libraries\CMSIS\Device\ST\STM32F4xx\Include" E! q1 _1 p0 J/ l
  2. ..\Libraries\CMSIS\Include1 g4 c# g+ C0 d$ s% O$ x$ |$ Y
  3. ..\Libraries\STM32F4xx_StdPeriph_Driver\inc" J2 _- g. A. v0 d
  4. ..\Hardware' ?5 C7 y- P+ K5 O0 U0 j& \) H
  5. ..\Driver
复制代码
0 L4 B6 B% I- f. Q# s& z
20190504195824939.png
5 Q& F, J9 D' i/ i7 E; {

) \  u0 p) q% v6 d6 }; H  Z再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:
" Q6 N6 a+ @2 w/ X- w: Q
5 L% ~+ ^- b) [
20190504200317628.png
! e: Y7 z" e1 m( x# Z
& P; P( K4 [. l& t
201905042009262.png
$ N( r$ ?* I) O5 L; B

. l  Y( O3 s4 D    在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s
" }$ Q- X, E- y/ G
% Y0 i: p1 K3 @    在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c
8 {; \, i: }7 h! c) Z4 ]. v* r( b0 d0 k# U. K  g6 T3 T) N
    在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件
- N) G' U* ]8 z) y# G! `4 u- v9 f: a7 d8 G2 C# m; H* E3 Z
    由于新学板子,还没有用到其他模块,所以Hardware为空。* ?! z- W2 I" Y! @; X; [, \

- D4 ]1 g3 ^$ w( [2 @0 @    最后,点击OK,返回主页面。) L9 K" ^3 ]; l# P* D* |8 h

6 @  m3 U6 `3 F/ \( M六、第五步——编译程序

& \$ P6 T: Q9 K0 p: ]" a    点击下图中的编译按钮,进行编译。. G" ]# p5 I9 _' y# d3 r1 m$ C
2 {% m& r% t( D, C( X$ w9 b% U
20190504202215849.png

& s8 W9 {2 K2 g$ Y% L) @* ^3 Y" ]7 j; a+ m
    发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。4 u: a6 ^  }' W: j

8 m4 C3 m7 E* r/ C- M$ p
20190504202911381.png
% f+ f- W+ n6 z. s9 c& B! [
) s9 @; L+ {2 I9 F6 p8 F3 R
    至此,新建工程圆满完成。2 N* k, Q) B' f
& s$ `( H$ l5 u/ V

+ A4 W) v7 Z! c! D2 B, i
收藏 评论0 发布时间:2021-12-7 11:00

举报

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