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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
一、总述
* [7 l6 V4 x( d2 w0 ^3 N7 {    之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。
. F. [, G7 n2 ]  w! V7 w
7 t6 |" R4 w4 R- r9 Z  k    我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)+ d, V0 o7 s2 z5 s. ?

8 F% b1 W0 S! I8 s8 `8 F% U* C6 k- ]二、第一步——建目录
. J* ]9 B: X& S. s& W( S% }    首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)2 m9 H& b, |2 r# u5 k: u% F8 v

  X" e% y- u! p* g
20190504190020151.png
: x& Z4 M! U- Q( @6 j9 |8 x& J% u5 Q& T
$ r' Y4 a; y" {) U! D# x' J
    然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:6 j/ F. `& a5 Y3 Y& c2 x
6 d, f6 l) S+ o  d1 i' U
20190504190614549.png
! Q3 D& a' u  A5 ?; U* [" d
' Q8 i8 }1 g3 ^# T1 f
  1. Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件( s. ]" E0 o7 l: x
  2. Hardware:存放一些外设、模块的驱动程序% f# ?8 T2 p& e- U* z2 x7 n; P
  3. Libraries:存放STM32官方提供的固件库
    9 l3 B# B1 e3 A
  4. Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件
复制代码

/ \/ k& g/ y" r# ?& W三、第二步——拷贝文件" k* y6 n+ T8 ^. e1 _6 k% w0 c/ L6 {
    首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:
! a' p5 x  e. a8 \8 o: h) B; O9 C+ K9 c+ J3 w  q2 m8 d# N
20190504192108979.png
! W/ w+ X  Y! @7 ?

* d) o# R" C/ p& T# \. T    然后,将固件库压缩文件/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目录下,如下图:
: I9 L( f( A, _4 g0 |' W( x6 \( U; q6 B' O! s
20190504192700845.png
" k2 K# x* U+ k: i7 U% O) e
! `7 S9 B6 `+ Z9 j( {+ Y% P% T
20190504192802275.png

& ^) J2 C! U# m) D
( H. x6 S4 C( S: n7 ^1 N  g5 |    如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。
/ n/ g. b1 F1 h1 }- l9 `5 E- k) B  x7 ~+ o. o. \9 o7 x
  1. del *.bak /s
    ( O" R( H# S1 j/ b
  2. del *.ddk /s8 `. l+ G0 h- @/ @
  3. del *.edk /s. c. N4 S, ]* f1 [
  4. del *.lst /s0 x5 I4 E7 ~9 Y& {) W5 e; j
  5. del *.lnp /s- z7 @! c& f: E/ i" J
  6. del *.mpf /s
    + s0 B  u/ `& A6 o# c
  7. del *.mpj /s2 k" Y9 b7 u# q& L% H8 I# r
  8. del *.obj /s
    / ?% @- m/ ]: F! C& v/ V" j
  9. del *.omf /s
    " O! F/ u+ R5 P+ J/ i7 O
  10. ::del *.opt /s  ::不允许删除JLINK的设置
    / F9 x6 C' q! L' c
  11. del *.plg /s
      d% W; _4 e' X) g9 C- ]
  12. del *.rpt /s
    - E; w/ c7 t1 Y) I/ E8 C8 N, L& E
  13. del *.tmp /s, O/ N2 u" E8 p+ n; C/ q1 g! Q, E$ Y
  14. del *.__i /s4 Y  C2 z/ o* _- |
  15. del *.crf /s0 Q0 D1 \2 t$ f. b& i
  16. del *.o /s
    ; @7 [5 [4 X; L4 l4 G$ @
  17. del *.d /s6 c+ s' u* a5 `: s. I5 u& P3 h/ X5 f
  18. del *.axf /s
    3 C8 M3 D: u. Y- `  a8 A
  19. del *.tra /s
    / N, c" {. `+ n  b  j
  20. del *.dep /s           
    7 g2 f8 O5 t% R( ^1 \, N
  21. del JLinkLog.txt /s7 G$ W6 K* f, m9 d' ]; k8 u( ]( H

  22. 6 K8 C1 V: m2 o/ W
  23. del *.iex /s
    " d7 E- K; Y! B
  24. del *.htm /s
    2 U, e: i* @% q8 S" ]) w7 c
  25. del *.sct /s. a" V( e0 S+ }' _
  26. del *.map /s, Q. D5 H# j" V
  27. exit  ?% [' j0 z. a! s4 B6 |; [+ _7 Y- c
复制代码

: a) J/ t" m; {1 P1 W
20190504204015493.png
9 L" u" p2 M8 q4 [8 P

, `( j8 ~" t/ X) `# i四、第三步——MDK建工程
7 R  G+ L5 q4 g; h9 \    打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:3 t9 d# z, |7 K5 ^
4 ?* p" ~' s; Z  \
20190504193122668.png
6 e- v; w0 h! G
5 i5 I& }9 n, I$ m7 X" q0 d
20190504193503859.png
* {) r+ E$ X+ q7 l1 O* y6 C) A

. F8 T, k* y% S    接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。, c" |% M, ~4 w8 M
) m% p4 d; A  v+ L% N- l
20190504193752602.png

4 ]. e: z2 |/ m  T
2 g1 s  }% G( }- l( L; S五、第四步——MDK项目配置
2 o8 M& V. ~# `    点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。, T; S. C! ?% j$ W/ [
: {( B1 P( C& m9 a+ L7 r
20190504194651573.png

5 m5 y' p3 F. v6 Y8 v" ]* l# ]) |7 E7 v' i; `) D
20190504195332953.png

2 X6 Z& V4 l$ r# c
9 h+ f6 w! @  Q$ G6 {: {双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。
3 z  k# j* {. h: f3 M8 ^& a" M7 j( T7 |4 m* z! M0 E* x
  1. ..\Libraries\CMSIS\Device\ST\STM32F4xx\Include9 x  o8 j5 Z3 j: f
  2. ..\Libraries\CMSIS\Include
    ; S' A2 J. g. k" q8 ~
  3. ..\Libraries\STM32F4xx_StdPeriph_Driver\inc6 S% ~/ @8 C# D! C
  4. ..\Hardware
    . K1 k0 g8 {6 I# G
  5. ..\Driver
复制代码

# X" b3 y, L$ O$ `' E
20190504195824939.png

. o8 l& K% N0 r5 z; E& }. X' F) F: y# `+ w
再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:
  ]) Y4 ~- x1 o/ M$ B6 d* I% A  B8 ^! [% F- k1 F
20190504200317628.png

9 ^/ s/ C1 n8 G0 f! `& {) E/ }% Y, V3 ~! |+ \- w
201905042009262.png
5 c- Y9 ]' t! J( }: o9 `& e

/ A0 x  L6 Q3 Q& a) u, Y% v; ?    在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s3 @* `, m/ X* k3 ]" k
6 }1 U' L) m' Z0 }- a
    在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c0 {: }$ I, N3 d! I6 w

& j; u" |# O  P- o1 ^, V    在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件7 |) H7 l# e; {. c3 O
5 F! q3 F+ Z0 {1 u
    由于新学板子,还没有用到其他模块,所以Hardware为空。
1 W8 Y# y. n2 [" y+ Q. k0 d" {( c* _3 k. {+ ~5 i* r
    最后,点击OK,返回主页面。5 C& s- A, O( T+ |

7 G  D6 T: _6 s5 k8 j5 R! A/ G六、第五步——编译程序
, l7 s8 \: V2 I, M7 R
    点击下图中的编译按钮,进行编译。
/ T) d6 f1 R' Z0 E' n5 ?  C. \3 d8 e8 F0 v$ U2 w/ P
20190504202215849.png

; F% L: m5 ^$ M0 Q2 P
* z3 W  i" G7 b+ P, [    发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。2 J2 r* Z4 y$ }5 b/ `

* h; z1 g9 T, ]. ]$ a( S  p% n$ K
20190504202911381.png

8 u( ]. j8 b" E4 K8 Z
0 p' }  ^* {; x# x7 h    至此,新建工程圆满完成。
4 t) k7 W( I$ r$ D/ l1 v4 O/ g8 D" g6 }% w1 K5 Y8 E
! E5 N  f! @% H$ H% h4 F. O
赞 收藏 评论0 发布时间:2021-12-7 11:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版