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

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

[复制链接]
STMCU小助手 发布时间:2021-12-7 11:00
一、总述
! t( d5 J4 \7 h) [* j# ~& ]" q3 H    之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。
2 }3 {* r# _- c- i# W* }( k
/ ~3 S3 M0 T6 [, h( [& ^    我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)" l+ h( _& Y- x" k6 G) M

0 N7 |) F) T$ ]$ u- y1 c. @二、第一步——建目录
3 d* y8 y# _% W, U    首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库); j; _3 G+ j1 g6 D( F& |' H

! G; f; X" m9 |' L6 P
20190504190020151.png

' i5 ~2 {/ q7 i/ Z* b/ J8 W* j% K  u, M3 y2 S
    然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:3 B* k  ^' j5 w& u
% {6 I" R$ v& r4 [" W+ `; T# Y
20190504190614549.png

+ C9 ?4 I' s+ V# Q% p% G4 S2 N& z! [. D" G
  1. Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件
    8 @* i7 n% v5 v+ |7 H" G$ g5 C
  2. Hardware:存放一些外设、模块的驱动程序& C5 [9 z. s: {; @3 L
  3. Libraries:存放STM32官方提供的固件库
    ( E9 R: ?; r  w5 O3 ?4 k: E
  4. Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件
复制代码

1 m* R; ^- W- b( ?三、第二步——拷贝文件* R" {5 L( k0 T! T
    首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:
7 v$ i* c6 h) B9 l/ E9 S  K" R. z& f; w% G& h$ @. C; v
20190504192108979.png
1 q- c* z9 t5 j$ Q$ {# \

6 h# O* v* g0 x* I/ e$ f# V    然后,将固件库压缩文件/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目录下,如下图:6 D9 F' s3 a7 x; y" `; j6 ]: }- ]

: w. s) s, P+ g& p- P  ]! N
20190504192700845.png

; y4 h" ^; ~% c1 G) C6 U- e; k
: ^: E8 _( V: b$ q8 R
20190504192802275.png
7 y2 R+ q, c3 G/ `/ N: R& I
+ f. C4 Q: M% c- ~1 O
    如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。
; N# t0 G, |& o8 [- K) {  P. j1 K! V
  1. del *.bak /s! E: C9 J/ D* B4 I  ?, R6 P! [
  2. del *.ddk /s8 T( C( i. a$ v0 m/ F
  3. del *.edk /s
      X6 R( U1 H0 }1 o3 m
  4. del *.lst /s( L2 }  Q0 Z4 X
  5. del *.lnp /s
    1 F2 {! o/ T: Z5 i; t
  6. del *.mpf /s$ ]  o( U' l- {5 {) Q
  7. del *.mpj /s
    ( T5 k5 K) b3 ]$ r/ X2 M
  8. del *.obj /s! v0 W* p* W+ v# I) p, }
  9. del *.omf /s
    0 M$ Q5 O) o9 @  {1 z8 h$ C2 N
  10. ::del *.opt /s  ::不允许删除JLINK的设置: V+ {, N/ s5 R7 e' D
  11. del *.plg /s, L- m/ O  l5 x4 r$ d; Y0 p
  12. del *.rpt /s
      x" L: E; h1 T! B7 i
  13. del *.tmp /s
    " ?- ?9 b( j" T2 I
  14. del *.__i /s
    1 ^+ z# L( |8 `7 p8 y6 Q: l
  15. del *.crf /s- D9 k0 u* D% z+ p
  16. del *.o /s- v: |/ m5 }: Q1 T5 [# v. f
  17. del *.d /s
    + @8 I8 U4 l$ Z. K2 r3 u" P
  18. del *.axf /s
    . E6 n0 I: l8 n5 Z
  19. del *.tra /s& x; X" ~: P+ O; w% [5 V
  20. del *.dep /s           - V* J, P& n7 x  P5 H
  21. del JLinkLog.txt /s
    * C9 l4 q2 b5 \
  22. . ]* s6 [$ ~) ^  F7 u
  23. del *.iex /s8 k. Y! i" v1 O- h0 R3 Y1 {& |
  24. del *.htm /s  W4 P5 M4 q0 ?+ t2 _4 `6 G
  25. del *.sct /s7 Q/ O3 P  \1 F0 t
  26. del *.map /s+ v1 v! J+ l1 C# l9 a$ {1 e
  27. exit
    ! ?+ C9 B- ?2 y2 m
复制代码

2 u0 V7 U% N7 ~+ u1 i) G$ h
20190504204015493.png
2 T" J) A6 b( k
. N7 G& u5 G  S. a' W" k" @
四、第三步——MDK建工程
  l; _: N4 O( [    打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:$ k# o( ]/ A) W1 G" ]

4 ?4 R" T* A/ Y- c+ [7 a7 l* g3 O
20190504193122668.png

: U: A( b2 ~0 Q. U/ C* J' j2 y5 ~9 {- ]4 A; Y
20190504193503859.png
+ j4 d2 s  `+ n! Y

' T/ g  Y0 s7 K* ?    接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。
7 U& ]$ h  f0 M
& u* x3 S1 A/ b6 W9 J
20190504193752602.png
! ]. y1 w( w9 X' r) u7 T

7 h) y, U3 X2 t7 a  n' E五、第四步——MDK项目配置
9 k8 v( T8 v( i. U2 @    点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。
6 s9 C5 \( R. O9 a# m/ U' @3 K( ]7 a% ]" d9 B- k6 A5 {
20190504194651573.png

9 }) }. C& M* W9 R& a8 k9 I2 ]+ C- T7 n6 P/ U# v
20190504195332953.png
; T( ?0 y% X( j, v# ?7 S

$ b! \- V1 P. Q: E" b( ^  Z* }双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。6 Z& D3 S8 p( `9 k$ |, b' |, N
7 b0 e$ k6 b! G
  1. ..\Libraries\CMSIS\Device\ST\STM32F4xx\Include! T- P" |1 ^% k( h; @6 c$ m$ ]! h
  2. ..\Libraries\CMSIS\Include
    7 M: u" |( f7 P5 s9 P
  3. ..\Libraries\STM32F4xx_StdPeriph_Driver\inc
    4 X, g* d; N$ |
  4. ..\Hardware  z# S, Q8 x( G9 K( @4 z" p+ ^
  5. ..\Driver
复制代码

& |: I4 Y! @' l4 K. [2 ?
20190504195824939.png
: f( {& Q! d4 S1 ]8 \
& o3 n8 e6 B3 k% j6 }7 x( H2 ~
再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:7 _, z& j2 ]- `' s

! A$ @( n' K  h) i( ~3 v" L" r
20190504200317628.png

+ ?; L' ^( L5 w5 A/ j
' C3 K9 H: d6 W6 R7 N
201905042009262.png
5 u/ r1 n* h3 @# Y9 |0 ]: Q

9 Y, T5 ]% ?- A' [) n$ z    在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s: t! h" C8 o5 ?6 v

6 a$ k* U" a3 V1 e5 ]    在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c( V( N* t! k/ I, q1 B0 N' k! f
2 N* \9 v+ }3 f6 K
    在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件
6 @/ T5 G$ H! T6 R5 C$ m
4 F! F& C' `9 ^+ V( u# K$ J6 J    由于新学板子,还没有用到其他模块,所以Hardware为空。
. R3 t/ k: \8 x3 z* A7 T
- N& \; @* \( y    最后,点击OK,返回主页面。
& a# ^5 a$ Q9 L4 U) @2 p9 s- j
2 x7 W% |& j/ j/ x6 X' G+ Y& k六、第五步——编译程序
& a" u# _3 I! O8 A
    点击下图中的编译按钮,进行编译。
# |! x1 j( x& A, K# n# v$ z: J) i
! n2 O7 m. T# K# Y% K0 \
20190504202215849.png

: y3 I8 G# J! B4 C& w  Q" v- |" T
    发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。( d$ q- x3 x! Q+ y& g
- y# ^9 t2 t9 y, ^2 F! c1 c
20190504202911381.png
6 _( f+ f; \  `

6 J3 K2 x3 E1 I/ p6 {+ s; ]$ t    至此,新建工程圆满完成。  M' L- O# c  l1 X- Q/ Q

: R+ Y/ v- N* i" m' \1 C
9 q( L2 [0 G7 E) K
收藏 评论0 发布时间:2021-12-7 11:00

举报

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