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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
一、总述
' t8 O1 X4 p$ d' m    之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。! w- k+ m4 b: Z- ?- m2 G5 F* ~3 }- z

& }6 F+ v* W' ^& u  |    我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)
' o% K8 a' S2 v5 b: {  ^9 C4 _$ Y' b: |  B2 z* ?9 d
二、第一步——建目录
) V9 `/ D% [2 K1 ~1 v  }    首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)
7 G5 X) L% `# U& Q& S' n+ e$ y5 q* ?$ Y8 E
20190504190020151.png
9 r% D2 M  A& }1 p* R. r
7 j4 m; y& H: w, L
    然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:
+ a2 s. R5 s$ ^+ S
4 U. S& }  ?  }7 O: `  ^
20190504190614549.png

- u/ N, k; j! q) `- }1 N/ v. y2 A2 X% S/ a: j1 m; q+ y. [% b
  1. Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件
    5 j# g- I9 D" \! O+ G! d1 I( V
  2. Hardware:存放一些外设、模块的驱动程序; T/ s+ Y6 q8 K& l+ f$ f5 Z
  3. Libraries:存放STM32官方提供的固件库
    ' ?# U7 \- L  {% h4 F
  4. Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件
复制代码

' ]8 _( j7 ~$ D; ?2 p) [3 O三、第二步——拷贝文件) J0 ~) Y& H2 Z5 U6 b5 ]! p  a5 @
    首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:
" e9 v0 M$ {3 o/ [) J! l+ ?/ w5 t, {9 d9 ~, O
20190504192108979.png
! H: {# P$ G! |' u1 O5 u
! |+ f: Y: _+ S& A3 _# y! i; C
    然后,将固件库压缩文件/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目录下,如下图:' z8 P% v6 B$ J% o5 c6 o) h
! m; `8 o+ A" O
20190504192700845.png

1 x. Q8 p1 N2 X  ^2 C6 o) }; v0 J6 C: C: d2 W" E1 t
20190504192802275.png
" i, R+ V  _4 X9 T# [
9 m( s, b# I/ \2 S
    如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。
1 K% i# H$ V, q+ o/ x4 b) {  b# |0 _$ [9 i2 e: N  J1 L
  1. del *.bak /s' m# N, ?% Q1 v( j5 Z5 x  B, R  `% V
  2. del *.ddk /s: b' J; t3 H, D  D0 M& L
  3. del *.edk /s
    # I: E6 T, y9 @% k, i
  4. del *.lst /s1 ~! Z/ {) @# j# m: s7 {' q# p
  5. del *.lnp /s
    7 l' Q4 z; }. [! U" }" F) L
  6. del *.mpf /s- R, \: h: V+ [- M
  7. del *.mpj /s
    ; m2 E* {: |) j( S
  8. del *.obj /s
    9 _% W, a; W- X
  9. del *.omf /s2 B& ]6 N+ K  T. M) b0 v8 H. \" m
  10. ::del *.opt /s  ::不允许删除JLINK的设置3 a5 T' v& u5 R4 S
  11. del *.plg /s' Z8 `( q- n( ?  ~
  12. del *.rpt /s
    5 d' p: y8 r- S4 ~2 C9 O, N5 e# m5 d
  13. del *.tmp /s4 Y3 G; w! `5 Y6 k
  14. del *.__i /s0 V# m* f' [/ E; S! B3 V) j  |
  15. del *.crf /s
    * Y* g, u& P! R" E, l
  16. del *.o /s
    3 J! \+ o2 ?$ F, `0 _$ B' `) Q
  17. del *.d /s
    - a% f) |( e& o: C% n1 v0 p  r
  18. del *.axf /s
    0 t; D/ }% R, G5 D4 f, B) `
  19. del *.tra /s' t" v, X7 u! }- ~4 I
  20. del *.dep /s           # s* K2 ]2 J/ i' ?- t$ ]6 F5 f
  21. del JLinkLog.txt /s$ Y* S' u7 j8 A6 g6 _+ S

  22. ( [, A' b- M0 s7 P. l( y
  23. del *.iex /s& p$ T0 W& _. e9 R" u7 }5 r3 m
  24. del *.htm /s8 m: o, L5 w# w% t- j; d0 h
  25. del *.sct /s4 S5 U$ O0 O7 n+ w) c, w" h
  26. del *.map /s! e1 j" W; u2 W/ X  P. W4 X
  27. exit% ^/ M$ n& K+ j& V
复制代码
+ T0 J, u9 w8 e
20190504204015493.png

7 i( a% {# {% ~# x$ Y3 u: a# H& X, B) r& l. v
四、第三步——MDK建工程
+ N5 C' b; t6 a$ e) ~    打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:
" F% \4 d$ O2 h0 x" c7 `6 J' \
# m$ ?: B4 `3 m) M
20190504193122668.png
8 G& y/ H6 Z- @& H/ C- X, V

! X# `* p/ D1 w9 V/ B# K  V6 P0 a
20190504193503859.png
$ C( O& ~# f+ ?- R7 A4 N! B  R
% p) I' Y4 a0 f  P* s
    接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。
$ F3 u; \" F5 n4 }, @$ O! @( [. H- }  X5 [! G; l. b4 h
20190504193752602.png

/ X3 m- f2 i8 P1 u1 e; Z- S, {2 F- g1 _
五、第四步——MDK项目配置. x, Q+ X' V6 s4 s8 y* U, W4 m
    点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。
2 x) \1 x3 R6 t, p7 ], R5 v) t5 X# Q& f( M
20190504194651573.png
8 }2 w5 v" a( u" o3 M- |$ {
7 W# l, a! t; J8 e4 P* Q- S4 w
20190504195332953.png
0 G( B/ C2 P  L
* p/ h1 d6 E+ a0 g& a
双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。
# R1 Y: x0 Q! \" q1 `+ l! y0 P
, v) z) |% H2 h
  1. ..\Libraries\CMSIS\Device\ST\STM32F4xx\Include) _; u+ _- J* O1 ~! X) \- f. u! J
  2. ..\Libraries\CMSIS\Include
    0 s1 }4 x7 R- k2 l9 c0 j/ {
  3. ..\Libraries\STM32F4xx_StdPeriph_Driver\inc
    9 A& e6 @6 F) ~' _$ m' X1 P3 t& r
  4. ..\Hardware: F+ H9 u2 J& u* M) s- M6 j5 Z
  5. ..\Driver
复制代码
+ z* k8 q+ d) F
20190504195824939.png

. |" J: E" s+ R: C+ Q/ c( P# _
0 b' X- d( p! m# t$ c再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:
3 X; H4 m! A- e9 h( U9 T3 D5 Z' q, P; x
20190504200317628.png
& P5 z0 A5 D+ J% o. V

& g/ Y$ M0 Z  y( r
201905042009262.png
/ X) H5 S& {- F8 A: J
5 ?1 C* H' @7 _+ }4 s5 _
    在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s
% f* L9 g) d4 O+ X( ^( L4 S- D
7 o6 R/ v4 p, M# s! D8 `' y    在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c
! j2 U1 r( M" w; y1 y' ~* Y$ e0 Z1 M+ r+ Y$ s; w
    在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件
% @+ M  j% M( \5 [. Z
! }; E( {2 _# {5 S7 w- v    由于新学板子,还没有用到其他模块,所以Hardware为空。
1 Q6 ?' D0 ?. G) ^4 l7 [1 A2 W3 t9 i
    最后,点击OK,返回主页面。
3 X0 }$ J" Y) w% Q0 r7 x. s. Q/ V1 G) _& ^5 _. ?" k
六、第五步——编译程序
! Y/ m+ c1 J3 e6 i% H7 N
    点击下图中的编译按钮,进行编译。
' K$ o; J. E8 L" U, j( w& p
  o4 w' [) W1 h2 w0 A6 s, a
20190504202215849.png

% Q3 o1 [/ a/ v  z9 y3 R7 ]6 Q0 w+ e9 A+ l
    发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。7 Y- T. d' Y) x3 e( j1 j: v

8 w8 F" M) m( x$ m) l
20190504202911381.png
, ^# ?% E3 s; L) P+ D3 u
) ]# }+ D6 b- x" e; S: T! }- E
    至此,新建工程圆满完成。
9 Y- Z/ W' `- o5 K% ]
( t7 d6 ]& u, j$ y' X# M# x
' P1 n; @; j( I6 n
收藏 评论0 发布时间:2021-12-7 11:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版