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

STM32基本入门使用uKeil5 MDK

[复制链接]
STMCU小助手 发布时间:2023-1-8 14:00
1 Keil uVision5 MDK 是什么: ]6 I! S3 `1 f" Z: k
Keil 软件是一种统称,它包含编辑器、编译器、链接器、调试器等众多工具为一体的集成开发环境(IDE)。
2 M4 r, v1 W2 @Keil MDK,也叫MDK-ARM,是针对【ARM内核】单片机,比如:STM32F1、 STM32F4、LPC1788、GD32等的编译器。
4 P" X5 Y, u+ N

* g4 d2 B# D9 C% \2 建立一个标准库函数工程7 t, Q3 }' R2 a( b) s) z3 V; ~
2.1 前期准备

3 q6 o) N& s, k$ p) w1 W在硬盘上建立一个任意的目录(例:stm32-led)中英文都可以,然后在它之下再新建 4个+ j$ y+ Q0 Y  E; S
文件夹,具体如下:
: C; x, ]8 ^: ~2 K6 x/ f% B: T" ]1 Q, n1 f  U
b3d62c061e9b40419f4f8a9d8b2a28a7.png
) X3 X& j! b" k, X; ?2 h %(CLY{05YS}(J%0VOH[YR5T.png / W$ T/ o; W4 U& ~& n
+ P) I7 v9 v- i: W' a4 t4 k6 l
G_Q87~%]DTP$RNMYY)BR)0W.png
" \5 Z& |; }# b. `/ d& m1 g
+ D, j( u: ]. G' o* c2.2 建立工程
: f% X+ `5 y' f0 A0 F8 @打开Keil软件后就会进入一个界面 ,如图:
% T6 o% L1 t2 `* E) m0 }) B# S/ T% u" g' ?* C

! j8 Z  @+ Y* j0 d+ L& q bc185155a5534a18b5c3b7dca3cfac17.png
1 |* @4 t1 C& r: T3 X+ G2 v  T" h. X+ p# A1 G; m
点击Project然后点击New uVision Project,就会出现一个新建工程界面,如图:
, \8 h- N) G2 ]% H5 j0 I' V# v" d' h  V5 p/ X1 j$ B( \
e7e247dd758f41a3b9b2e25b0871d4d1.png ) i( U+ C0 t  {0 E2 l  A5 ~! h
. e, P7 b% G7 u5 j+ F- F0 U
abacc59ccb5b4e6496568956b1322fd2.png
9 C3 e4 g# M1 V! c- C# m! `( _( u+ o; J
将工程保存至 Project 文件夹下,并给这个工程起名叫stm32-led,软件会自动添加扩展名.uvproj,如上图。! w  T) |* U; ?9 U# y$ S

2 [( n2 D- F; w3 u, t直接单击“保存”按钮,工程会自动保存为stm32-led.uvproj文件,下次要打开LED这个工程时,可以直接找到文件夹,双击.uvproj即可打开。  }6 G- r8 i* x/ g! G4 W

" I& r( B+ J! S! P1 s保存之后会弹出一个对话框,如图:  i0 i; _) R+ V! ?1 P! K
8 ]" Q2 N$ f6 g
6 p7 r$ X0 R1 n$ u# |
07fa8e94a60349f9aa4e2fe761226bdb.png - x( Q9 ?& q2 z6 P' D+ j
- R- Q; i# F) t" Q: G; d7 x/ J
这个对话框是用来选择单片机的型号的,例如我们使用的STM32F1系列的单片机。
6 p/ M/ u6 @5 {" _* R- g: |. @
( n, e! A4 e* @# `
8fcd856658284b5e93835a955e9e433a.png
, J( w# P9 l  G! i

9 i' Y- W9 i! b; j8 A) `& W由于MDK中只有ARM的内核选择,我们要使用STM32单片机需要自己手动添加
* J- @5 f9 U) R4 `3 Y- c$ \$ M! U$ o9 b* [& f
8f2556e6933f47c9b488ebe6b1cb188c.png 8 `) l. g! x; E! ]6 I- c1 F1 V3 J

. x, m' @6 j. c7 F+ u9 o1 W! e# K选择完成之后会有上图界面是用来在线添加库文件,我们先将其关闭后手动添加。
! j, S4 Q$ H+ f+ B& M
) ?' ^9 z2 _, ^6 q. ^$ v2.3 建立组文件夹
3 K. Z5 f1 \# ~在新建的工程中添加 5 个组文件夹,用来存放各种不同的文件,文件从本地建好的工程文件夹下
+ z) Q- S, q$ ^' z  T获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可。
( {: R. M3 g' v$ `6 q' E! i" u  e" [$ u. q
Y7M6IX97D3X$(J)EHI_L3)5.png ! k( B6 D5 Z: i

+ L1 b; b, j" ? 5ee5624d16c84b3c8fc57a11b26d92e1.png 2 f' H; Q. k0 O' @& e
$ U2 m2 [/ n2 e0 h; d8 f
右键 Target 1 然后点击 Add Group…
, P  S* r" P/ d5 f# M  S
! |0 G: a9 t6 u$ c) o$ c; i
2.4 添加文件. W5 s- }3 P/ k9 ~
先把上面提到的文件从 ST 标准库中复制到工程模版对应文件夹的目录下,然后在新建的工程中添加这些文件,双击组文件夹就会出现添加文件的路径,然后选择文件即可。$ O& N* r8 B+ T7 t: M6 n+ S( G
0 B# V9 m; T) n
fe09f7700b254bf0a43a626aa8cd2815.png 5 ~. F3 {) |% J5 V3 V7 p/ L) D

$ F+ ?* l* L' P" Q8 {$ Y/ O3 |+ q2.4 配置“魔术棒”选项卡* P2 w: o8 J8 o. H9 J% I
这一步的配置工作很重要,很多人串口用不了 printf 函数,编译有问题,下载有问题,都是这个步骤的配置出了错。
& p- [1 p" |! N- I' _6 Y5 U
" @; d. k' b5 h- G2 Z2 k5 M3 \0 z(1) Target 中选中微库“Use MicroLib”,为的是在日后编写串口驱动的时候可以使用 printf 函数。+ F- u4 r" \) z

0 _5 W* e; P7 k% }" s' o
d2b3d28c60e7415d80f3fbd53d27390c.png
1 Z3 p! b  ?2 i# {
/ m. |, M/ j; w
(2) 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“output”文件夹,如果想在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上。' I( e% E. k8 l7 _/ V& k% t
8 i! |) ?4 g5 Y0 |9 K' N# A  I1 G
602fff5942af42a38b772fbb5267e687.png 7 Z2 o; U; ~( X2 N
3 S) F: L% I* l4 c- O, ?9 c# @( J# R, o
(3) 在 Listing 选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹。
! o  }" R" H( x& p9 J; j; F$ J( s- Q& n9 I2 h3 O
1c5974528b354cbca0d059f12ae70d54.png ( b; @" z$ m" s4 P! |  p, }6 u  p
5 \7 U0 J8 R8 Y
(4) 在 C/C++ 选项卡中添加处理宏及编译器编译的时候查找的头文件路径。如果头文件路径添加有误,则编译的时候会报错找不到头文件。+ S! Z0 i, w1 m( r3 B
4 x$ g" z' z8 J* x# y' W* U
6d765f03b2df4fd9893aefbf5525112d.png
  p8 x! X: j0 p9 x' B) n

$ x  H5 m- ^' }  a& P5 ]  a6 X在这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。  L7 R' o% Y% _. z

! [! s9 p: C! P" uSTM32F10X_HD 宏:为了告诉 STM32 标准库,我们使用的芯片类型是 STM32 型号是大容量的,使 STM32 标准库根据我们选定的芯片型号来配置。
- d9 M: O+ Y) `# V3 e# L% g3 {& N- p% }% Z( [* \6 v
USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件。. R4 ~/ d; P; o5 e" {2 C1 T
7 P4 P/ c$ M6 _" E* h
“Include Paths ”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这里配置出了问题。你把头文件放到了哪个文件夹,就把该文件夹添加到这里即可。(请使用图中的方法用文件浏览器去添加路径,不要直接手打路径,容易出错)。! S- B! @. a( S5 ]
6 _' _! E2 h" f- N3 ]" Q+ [
2.5 建立 main 函数
0 b" U8 H6 g: V  z1 V
/ Y( j" C- C& x& b5 I: n9 U
328dd29055be464d94a22a86e50c9545.png
( G0 P2 P# ]! x+ g- d+ }- x; K- \7 A  n! X, ?" H" }7 ~
敲出基本框架,编译:8 W- N9 b! o4 Z+ C8 F6 p7 i% l

& h3 m3 {3 t5 V* I6 _0 Y
1c62c323ef0141d38266489357b67458.png 3 _* Q0 C6 L0 ?0 P8 F7 m4 q. i! a
8 x2 y/ y! e- y9 Q8 W+ B6 r
0 错误,0 警告,至此工程模板建立成功。
9 l8 Q9 ~7 x; _  V$ b) \' D( k————————————————
4 U! Q9 L% G9 O) F4 \版权声明:倾晨灬雨曦
6 R7 J4 |: }2 P4 j, i) O
4 B% ?. U" F# W5 I! n9 @! H
6 Q9 M3 ^$ O: O; ]5 n7 t: A
收藏 评论0 发布时间:2023-1-8 14:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版