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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
一、总述4 ?+ I+ Y' S; W0 h9 t* e: `
    之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。
/ C# {9 i5 b* F) ^  t
8 B; q7 b, |8 s9 ?$ b2 A    我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)
8 c2 P+ Z9 a9 P5 a2 B5 U: T/ e8 [5 F* g; B! a( E
二、第一步——建目录
/ U1 x/ M4 S; R/ I( X' e    首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)
2 f: b0 ~$ w7 y2 s* U, l# X4 x
% h8 V7 L  ^! j: F5 R4 j0 [
20190504190020151.png

; m8 W, _* @- @  X+ u; w' F  e3 |
    然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:
- N! G, \: a% g5 z% F' d% W; f
: r. L9 c3 l) ~0 k' J6 v* k
20190504190614549.png

+ G( M9 U' G% _/ r% K* H  w7 e; `
9 ]; P" f9 X9 |2 z8 r& C; x
  1. Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件- Y0 c" ~' K, A( m, p' H3 k
  2. Hardware:存放一些外设、模块的驱动程序
    3 p+ w, |/ y9 D! {
  3. Libraries:存放STM32官方提供的固件库* x2 i1 E2 R- G" W8 C0 t& F5 V
  4. Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件
复制代码
+ x& f! b  W$ ^5 w( y
三、第二步——拷贝文件
7 [" f  X" P  |- @    首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:( X4 j; Y  _4 F; m" ]& Q

* |% t* m) U# [# D9 R& P8 G
20190504192108979.png
+ y0 [+ U( X! L' R0 a: ]
, l. M+ k! M/ y8 g# 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目录下,如下图:
) s2 L# ]7 _/ e
' @2 J# r% W9 ]( |9 r( v# u
20190504192700845.png
; n3 k1 o9 N8 D+ c$ x+ M$ v# p4 x

! j8 g# {' T7 j* |" z" {
20190504192802275.png
5 m8 _" ?# a3 ~7 S2 S* u

/ T. E! B7 b: K: T    如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。
- P* }4 S# `9 [5 N% B6 r$ X; k6 H! `, I  Q! y
  1. del *.bak /s
    2 s! A& b) t- Z2 c! [
  2. del *.ddk /s
    . R$ l% t9 o$ S2 k4 h# o
  3. del *.edk /s
    . t1 w/ l' g6 e& F( R
  4. del *.lst /s
    : C) |7 q$ x0 j8 n% N* r* H
  5. del *.lnp /s
    . z# e4 H: w$ `; c
  6. del *.mpf /s" y) D9 i; X, G, X; }
  7. del *.mpj /s
    : T/ Z2 P7 m5 M& @* V8 g0 u
  8. del *.obj /s% _% R3 F4 u1 x% M& c6 _( f
  9. del *.omf /s8 Z& `' z4 R3 I' M0 H. T
  10. ::del *.opt /s  ::不允许删除JLINK的设置9 m' y5 y& \/ N! a" k! B' N
  11. del *.plg /s( D8 w' Z" V0 T5 b  r/ ]6 r7 J
  12. del *.rpt /s8 j8 W; n6 i/ ^/ X4 L. C! y
  13. del *.tmp /s
    0 `/ r* S2 ~& R
  14. del *.__i /s
    7 ]% [0 |: \& W( i  g) u
  15. del *.crf /s+ g( e) y; I% C$ G  T7 a; \7 B" @
  16. del *.o /s) o$ a# l0 A: k) D& s6 J$ R( m! b
  17. del *.d /s
    , a' E+ q; i6 ^4 j( ~
  18. del *.axf /s
    * D) D/ g/ x" E1 ~
  19. del *.tra /s
    7 |9 t# I5 y2 z7 p3 o4 s
  20. del *.dep /s           3 t) J( H! C0 s( g$ X
  21. del JLinkLog.txt /s
    6 M* E' e: R* w' F2 s/ O. x
  22. & |% K9 }9 j9 e
  23. del *.iex /s
    : b% ^/ e: m* P
  24. del *.htm /s+ j% N1 q' _% s* U+ `1 ~5 F
  25. del *.sct /s
    5 I1 @* ?- d; d4 S; l% i
  26. del *.map /s+ X$ i# s! z$ I  c; X' w+ e
  27. exit8 Q5 Z4 b5 @2 F0 T
复制代码

/ y6 f' d+ m' u/ ?) z' Z1 Q. Q
20190504204015493.png
1 }* h/ \- Q8 C, {

8 ~4 q2 P2 O! M, K! J1 T2 g四、第三步——MDK建工程; [, X+ p/ [/ ]% n8 M
    打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:( D( f0 _& q2 \6 L* c; r- G1 [

7 ?: s5 z& P% L! o  g/ S
20190504193122668.png

# }7 A( J# v8 Z& W1 q9 }6 }
  o! X3 n$ u0 T+ x4 y2 K
20190504193503859.png
& l" u( v2 F- X4 e% q
! W  O, i7 I' Y
    接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。9 k" @. R$ e7 C# `

2 _1 j. f7 q% r: V1 B7 Q3 N
20190504193752602.png
2 D' N/ S4 B% k
9 p5 v- Z: Z. M7 N4 F. l
五、第四步——MDK项目配置4 f3 `" Q: t& l- _/ K0 z
    点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。; a/ h# l, O9 ~6 M6 y
& e; Y2 g6 T, t  Q8 F( b. n. \
20190504194651573.png
/ t- E" D& C5 F4 E! u; a0 I- t8 L5 U
* _9 U$ S; Y  t9 s; u
20190504195332953.png
$ d  B2 R* `1 {& y9 P
; o; k  Q9 f$ O% O5 i1 t
双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。
$ i/ k% w) w, B! a& U
$ @5 A0 @, B; H" D/ }
  1. ..\Libraries\CMSIS\Device\ST\STM32F4xx\Include- m* N& B6 G7 X( \2 x0 D9 O
  2. ..\Libraries\CMSIS\Include
    , m; J7 x, F( d
  3. ..\Libraries\STM32F4xx_StdPeriph_Driver\inc8 a9 i% p: w- Q* m% H0 N' n
  4. ..\Hardware
    ; D8 j) \- k, ~- {) y6 [2 y/ X
  5. ..\Driver
复制代码

" T" L( N$ g* {$ z! ~/ U3 }
20190504195824939.png

6 T2 F7 Z6 O% F- e; ]
' N. P; T  n, Z% E1 `5 [# H再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:- Y7 l; W9 Q  C2 |
" w' _9 z. J# K2 R
20190504200317628.png

5 t: k: i. X6 _8 D% n# [. m3 q: a: z
201905042009262.png
. k0 z* B" ^) I" \( y  j4 J; I
. I/ n, U  H* Q+ s8 P* P! ~( b
    在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s
9 H  W2 W8 K! _! a) K/ c, o1 z
$ \7 c3 U- T% L! q    在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c
9 _8 @$ H4 \% _: f7 }% a6 T
* Y+ ^  T, q( R6 Z2 A0 w: H( T    在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件
; z4 N' Q7 N1 v+ z4 T7 R5 T) t3 A7 |2 {6 ?& W
    由于新学板子,还没有用到其他模块,所以Hardware为空。
" ~& [" ]- W6 p3 T% u/ q' J0 o3 t  ?* W9 W5 i- F7 G3 V2 a
    最后,点击OK,返回主页面。
3 `4 Z% H: c( W" u$ i
% T) l9 c" J! z$ b6 F4 Z六、第五步——编译程序
! g- _& `: {7 m) U7 d$ F/ E9 |8 C
    点击下图中的编译按钮,进行编译。
# k: d1 {* O7 ~$ L2 D* N: |  Q3 P$ T8 }* _  q) ~4 U
20190504202215849.png
4 ]7 H' X5 x5 p4 z4 E
0 s( \5 ~% o* s
    发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。6 \3 I: Q( u& n  Z- D3 \1 d

* `8 s/ Z- h) K
20190504202911381.png

9 t* z, ]- D/ }' E: v2 e  ~) F& U* V3 z. x: J: ~# `: C
    至此,新建工程圆满完成。
; B9 A6 k4 |3 i7 D
, i7 d7 ?" S/ @- B) f' Q. G! g( T$ G$ q# O/ H% ~
收藏 评论0 发布时间:2021-12-7 11:00

举报

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