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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
一、总述/ h; H2 y1 T! k7 d" j
    之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。
; C5 G. n, X) }  h! m; N% G$ ?0 V8 }, w% J8 o+ t) T2 A  j
    我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)5 ~- B/ @7 j1 n' N& z9 B, d" K( f% L

# d3 w- ]) E$ K% c9 p二、第一步——建目录
+ I( E7 c$ }% Q: l    首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)" q; f. ~1 s: d, ^% Y: T3 k
$ h! P  U: j9 c: l
20190504190020151.png
; {; i! m( _2 X' C
# K% t) D; F/ v" S8 w1 ^' S
    然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:
8 p0 y, k6 {5 u% H9 _% C) {/ Y9 e+ r# [
20190504190614549.png

& E) [) ^  f: ^1 m4 i1 |  j2 S* h8 q8 d, F  ^
  1. Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件
    ' j# S$ [# w8 m& Y5 x
  2. Hardware:存放一些外设、模块的驱动程序
    ' l' E' J0 R7 B
  3. Libraries:存放STM32官方提供的固件库
    4 N) \9 A( L- w8 v, a$ u$ {
  4. Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件
复制代码

9 i8 Y2 x/ ?8 L9 m% H三、第二步——拷贝文件
/ l, N1 }3 {( b# c8 v8 W8 v    首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:" w1 u5 j) b7 _1 x; S( N; [
) z8 R- r; X1 t" P
20190504192108979.png
* d: [' ?" J' a" t8 _
' x0 b" I9 a9 z* 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 N& b3 K4 u# ]6 d

" g; K( M3 x$ W8 L
20190504192700845.png

7 t; M: q& i2 A, S2 _3 ?: e$ q( L/ P( t
20190504192802275.png

+ i. H8 A% @, Q* ^0 b
6 P4 u4 F# ^5 b' Z* t# ]    如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。
' i$ H. {; A5 s: h& Q3 J$ i1 C' T- N. D  {4 i$ |2 Y/ I
  1. del *.bak /s& z& U" v: r: A9 w) \8 j4 i5 t
  2. del *.ddk /s  a: I4 ^/ v; A9 _. `8 g$ B
  3. del *.edk /s
    ! F1 t( }6 Z. w# g+ U
  4. del *.lst /s) v0 o$ k8 b6 |- A$ f4 L9 T! M
  5. del *.lnp /s8 n0 m( s% ^/ O3 b
  6. del *.mpf /s
    0 M  t/ J% t# z/ {% u8 m5 _: B
  7. del *.mpj /s! o5 h( ]2 |" {" o" q1 v
  8. del *.obj /s
    ; l. w' K, |& C: e; Q
  9. del *.omf /s% L" R$ ]* p/ j  s: ?3 O
  10. ::del *.opt /s  ::不允许删除JLINK的设置- l2 @( s( `4 u) F# C4 p
  11. del *.plg /s
    - }* v: w: S" j/ \
  12. del *.rpt /s$ }+ z7 @: g8 u
  13. del *.tmp /s
    " p$ F. E  D" }5 G+ `2 D/ H
  14. del *.__i /s
      A1 c0 `+ G* y" [8 {5 Z: S, |/ k) [; {
  15. del *.crf /s, }. Q) }8 i% w) @+ A- }
  16. del *.o /s& N4 c( Z; Z# ~3 y
  17. del *.d /s
    6 n( k/ Z' G( Y$ z; P- B. D& i9 B
  18. del *.axf /s
    - N( u: R3 W( }  t$ B
  19. del *.tra /s
    8 _5 }# X; J# F
  20. del *.dep /s           
    - `# I* \" [% D$ c7 i+ a# k; \  ~
  21. del JLinkLog.txt /s
    - l5 d+ j2 @! m# e+ w4 P

  22. 9 G+ z( I2 E3 ?9 M" p4 s
  23. del *.iex /s
    . m- F; A0 u" ?. `1 P, z
  24. del *.htm /s, _  h: N! z$ @
  25. del *.sct /s+ F8 F$ }% s1 M+ t4 a" T: K
  26. del *.map /s- c, i! l( [2 j
  27. exit5 s# d! }( Q% w/ z5 b0 ~
复制代码
) Y/ _% Q+ T  a# e. J+ e6 {- {
20190504204015493.png

2 i$ h" r7 P5 K/ h* ~0 J3 J4 x" Y
6 ?9 K: H, p7 o8 E( ~四、第三步——MDK建工程4 L6 ~/ U) C8 z
    打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:
4 }' }7 u+ t0 M/ g. W- V3 w, j* f; e# d! ], U
20190504193122668.png

" |+ o5 d0 H- F4 h7 c3 j3 J. h" b2 H7 |" Y" R1 ~' m
20190504193503859.png

* Y) D: E- ?( g9 }
  L/ z& B, v0 O; v, f( [    接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。+ y$ E& z. E0 r( V6 ]

! G" p5 a* p, e8 h9 A
20190504193752602.png

$ g0 n- \, q* N# c' M) w( @( Y
: Z4 x# Q& b- k# C7 f, K五、第四步——MDK项目配置0 u4 ^* \1 o6 J: W1 b( g, \: Q
    点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。
* C/ q; h. L: ~6 B
9 ^7 X3 m( o% W/ X: P4 m  O; o
20190504194651573.png

+ U& U' I! e7 _: H7 D2 h4 G/ o6 E( `* k: G6 o
20190504195332953.png

& o+ q0 a5 H1 \  s/ @3 N6 f0 B% u! W
双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。: w% _4 ^% P+ O$ u
/ K2 J( @5 L8 ~8 F9 k: z: U
  1. ..\Libraries\CMSIS\Device\ST\STM32F4xx\Include
    # x$ ?0 b) g2 W# \$ T$ p' z* P7 o
  2. ..\Libraries\CMSIS\Include% ~4 i: t% ^  L8 \
  3. ..\Libraries\STM32F4xx_StdPeriph_Driver\inc$ f; ]& J% s4 F; c: P+ U6 a
  4. ..\Hardware
    / V* a7 d3 J7 V9 x4 t6 L) p* z
  5. ..\Driver
复制代码

1 c/ c6 H5 q4 p" L* E
20190504195824939.png

3 ?" [. ]$ l( j1 H- e+ ?4 F  L" H8 \7 t* S7 f: i
再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:6 Y! u% L- H# K1 z6 J) B
% L  C3 K4 N8 l( ]0 l0 i
20190504200317628.png
) p' k/ @+ N( s, i& p
- x. C( G6 R9 T9 [  h  C$ n% k4 f
201905042009262.png
! s  n6 y  u$ D7 k8 X# {

1 |2 ^8 C% ~/ @5 H% X1 v% N    在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s
9 M9 p& i& Q2 U( |" c' K* F- g8 K6 X8 W+ N, h
    在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c' R( d! ]3 x7 X; i6 Z) k# T  t' H
, l# r9 i4 u3 T2 h9 m1 H
    在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件
5 n5 x- S2 T' e: F' o, D+ _) U7 t- j, o
    由于新学板子,还没有用到其他模块,所以Hardware为空。
9 o6 x! U; V( E; e' C3 Z* S
, r! _# i. o, x! g. d" o# b    最后,点击OK,返回主页面。
  S! V1 i! }, `7 E5 ?: K" n& L* {8 L( d
六、第五步——编译程序

# S+ `7 Z6 w# f+ u0 K    点击下图中的编译按钮,进行编译。
" [7 `* f) k- O0 v
1 ~& G6 \4 P7 a5 ~: m
20190504202215849.png
4 O& Y' S" P( k, {3 R% I

! u" m: t. B8 d, \4 C# f    发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。
: |" z& m) c  \- e( z. r
# v$ A) c" b: a" \% Q) R' B, Q
20190504202911381.png

8 C. H' y3 B, f7 ^) {2 ?& c2 A
! ]6 D' R" n# l    至此,新建工程圆满完成。8 h- D2 L& U" O
9 ]" Z5 F5 t) R
4 h" q) h; M" i5 h8 c
收藏 评论0 发布时间:2021-12-7 11:00

举报

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