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

STM32基本入门使用uKeil5 MDK

[复制链接]
STMCU小助手 发布时间:2023-1-8 14:00
1 Keil uVision5 MDK 是什么) |" M3 c9 v# Q/ r" u. n: c, y
Keil 软件是一种统称,它包含编辑器、编译器、链接器、调试器等众多工具为一体的集成开发环境(IDE)。
# x+ s$ E' `3 p! c" Y1 m# _Keil MDK,也叫MDK-ARM,是针对【ARM内核】单片机,比如:STM32F1、 STM32F4、LPC1788、GD32等的编译器。
. l2 @. W: Z/ u; d2 d
% |- o" n! [0 K" \6 N$ Z; R$ X5 }
2 建立一个标准库函数工程
% W* _) {$ S1 P, H: y& I6 E2.1 前期准备
' m, v" ?: U) Z5 f+ q+ t
在硬盘上建立一个任意的目录(例:stm32-led)中英文都可以,然后在它之下再新建 4个; n- O- x, z" D: ]4 I- Y
文件夹,具体如下:+ K9 N) y; Y  E* a
" A* d0 S; R$ d2 B& E/ W
b3d62c061e9b40419f4f8a9d8b2a28a7.png
( @) A; ]$ l" g7 C6 R7 A %(CLY{05YS}(J%0VOH[YR5T.png
9 K  _0 w- d; b
: W, `1 w8 _6 v* a5 O  g' F G_Q87~%]DTP$RNMYY)BR)0W.png
% S* J4 \! e" P$ Q; I
. s+ t9 Y: X" A4 |8 f0 K9 C. Y2.2 建立工程% V8 ?- w/ e5 R5 }" g# q/ k2 A
打开Keil软件后就会进入一个界面 ,如图:" n5 k$ X* @# j4 U( W5 t
, c7 }5 ~0 L/ k& \1 n+ k' g+ ^( A
* g4 b' n' d2 g0 w% `# n" T, K
bc185155a5534a18b5c3b7dca3cfac17.png
5 ^5 ?& G9 O' E% U0 H
& F0 e1 o0 ]" ~! T: }0 Z# J6 B+ ~
点击Project然后点击New uVision Project,就会出现一个新建工程界面,如图:5 U% O( F' h% i& D) t# B

, U7 Z  R5 w' u  ^" T( n/ N
e7e247dd758f41a3b9b2e25b0871d4d1.png
6 J& c& @+ s3 p) h2 _: p! F+ v! y
$ r" a3 P0 n$ |+ z* F abacc59ccb5b4e6496568956b1322fd2.png
4 w# L8 q# y8 a3 e1 ]
; P+ B! G" ]* F8 h9 V2 W- N将工程保存至 Project 文件夹下,并给这个工程起名叫stm32-led,软件会自动添加扩展名.uvproj,如上图。
+ p  j! X# e' B' X  {. V: E$ n( Z$ b. }0 o* g, \4 @4 u
直接单击“保存”按钮,工程会自动保存为stm32-led.uvproj文件,下次要打开LED这个工程时,可以直接找到文件夹,双击.uvproj即可打开。
- t0 s  |& M& s! a6 v5 p0 d" U: w) s; e
保存之后会弹出一个对话框,如图:% m1 ?3 D; R5 I; _' P$ [) _
: z" i' W2 ~' ~. `' ]0 p

" E/ k  |8 z8 y 07fa8e94a60349f9aa4e2fe761226bdb.png 3 a- E! r" R/ _6 E; c5 Z

. u- P4 ]) s, y; G2 x
这个对话框是用来选择单片机的型号的,例如我们使用的STM32F1系列的单片机。# ]; c) I+ P" O/ k5 H) U4 i

1 N7 e- g7 t4 {" L2 m
8fcd856658284b5e93835a955e9e433a.png 0 Z6 c6 N. l/ @' q: Y* t1 a  J# Y
& T  @  D$ n3 @  C
由于MDK中只有ARM的内核选择,我们要使用STM32单片机需要自己手动添加
: Z4 V- k* `1 N
1 O/ h& U" v/ d2 q( t9 F
8f2556e6933f47c9b488ebe6b1cb188c.png
: e; z* B  L# S) H5 y6 a0 W2 C" Q2 |7 h. V: ~
选择完成之后会有上图界面是用来在线添加库文件,我们先将其关闭后手动添加。
( X: S2 Q1 i7 }2 I! W2 R. Z) ], z! f! R9 |6 i* V# U) C, f+ v- D
2.3 建立组文件夹+ `9 k' c2 L3 {! r6 G
在新建的工程中添加 5 个组文件夹,用来存放各种不同的文件,文件从本地建好的工程文件夹下
# s; M/ h9 E6 `9 e8 I4 E6 F获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可。' y# k- u: w7 P" S. c

$ I- Q3 g6 n, @) U, u9 {; X9 C; |* f* q
Y7M6IX97D3X$(J)EHI_L3)5.png / }+ \- b" x2 b4 G' ]/ F

, N( B& a' }8 D7 p/ |! n: ] 5ee5624d16c84b3c8fc57a11b26d92e1.png
  U8 _+ y4 _2 {# U9 ?
  T' b* v% ^- |' x* Q$ V右键 Target 1 然后点击 Add Group…
0 ^3 \7 m7 r) ?/ L/ y

1 b) o, k: l- B) V2.4 添加文件2 S1 l/ y0 ~$ Z
先把上面提到的文件从 ST 标准库中复制到工程模版对应文件夹的目录下,然后在新建的工程中添加这些文件,双击组文件夹就会出现添加文件的路径,然后选择文件即可。; d  |' U; k& D6 j+ B/ a. w

: p1 D+ B* X/ `. Y4 Q
fe09f7700b254bf0a43a626aa8cd2815.png
' o& ?- N  s' ?! A8 L' J% u" N

# v+ R4 G* Z' j5 I8 T! O# C2.4 配置“魔术棒”选项卡
; t2 l' s" Y) E1 A8 [这一步的配置工作很重要,很多人串口用不了 printf 函数,编译有问题,下载有问题,都是这个步骤的配置出了错。
6 \* W2 y# H8 t  Z. \
2 y" O  v+ Q! x( g( p! o! K(1) Target 中选中微库“Use MicroLib”,为的是在日后编写串口驱动的时候可以使用 printf 函数。  L  k2 q( w/ G8 b3 a: J9 k9 \- \

# F" D  L" X& s" w
d2b3d28c60e7415d80f3fbd53d27390c.png ( Q" E2 V" Q: U
# i* l- p& ?# o  N
(2) 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“output”文件夹,如果想在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上。
* f1 B" m; M- I+ L- J# Q9 k! y& X2 Q- F- U8 X3 [4 E
602fff5942af42a38b772fbb5267e687.png
: P  k; r, S0 N5 j1 A# l  D
8 J, O: a; N. A2 _8 [
(3) 在 Listing 选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹。& A. F( c; |% s2 p  G

& w- E$ B7 w2 ^7 u4 C
1c5974528b354cbca0d059f12ae70d54.png & ]$ O( l, ?; b  S  {1 }+ _
4 P! R/ i/ O3 x# k! ?3 o
(4) 在 C/C++ 选项卡中添加处理宏及编译器编译的时候查找的头文件路径。如果头文件路径添加有误,则编译的时候会报错找不到头文件。- m" y. ~- b) L# C% K4 A

4 q5 H+ b' p$ s! S, X) A) k
6d765f03b2df4fd9893aefbf5525112d.png
! f9 d9 s: ?, Y+ E

+ |" H1 E, k( `  A, p5 p9 ~" S1 p7 V在这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。
5 K4 x0 q4 |6 {9 }! _, l/ ?
+ l& x0 V% j! I$ {+ ]
STM32F10X_HD 宏:为了告诉 STM32 标准库,我们使用的芯片类型是 STM32 型号是大容量的,使 STM32 标准库根据我们选定的芯片型号来配置。0 p2 G& r7 x% n- u% n' V2 F
" G! p1 F9 D# V9 A
USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件。
$ _' ^+ H  i( G  t
9 t3 {: ?( J! |4 A3 M  I“Include Paths ”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这里配置出了问题。你把头文件放到了哪个文件夹,就把该文件夹添加到这里即可。(请使用图中的方法用文件浏览器去添加路径,不要直接手打路径,容易出错)。) o1 D  c6 [4 Z# f% M
6 L- U- L+ F9 R* l, `( q
2.5 建立 main 函数6 g* u7 s% O" n0 I& s/ t
* k* L4 ?; K( A
328dd29055be464d94a22a86e50c9545.png ) n6 A2 M  }* W2 k

3 c+ P' H6 a* B& s/ r敲出基本框架,编译:# \, Y$ d" @4 v# O/ f' {) X: P5 I9 Y
6 T6 p3 I( s3 z& e7 p5 ^$ _
1c62c323ef0141d38266489357b67458.png
* f) w) `% x( B  S/ n6 S" C
/ G5 j$ V# q! ^/ y1 d
0 错误,0 警告,至此工程模板建立成功。
3 \, ^$ B, z& V5 [————————————————
( ?" f2 j, R  S* q, }: x6 t版权声明:倾晨灬雨曦
. t& p6 T/ d) b+ [2 I
) i6 X" s! i' \0 l& k6 C/ e" W9 x+ X% g6 L
赞 收藏 评论0 发布时间:2023-1-8 14:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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