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

STM32基本入门使用uKeil5 MDK

[复制链接]
STMCU小助手 发布时间:2023-1-8 14:00
1 Keil uVision5 MDK 是什么5 q" l" _* Z3 h2 K6 m1 Y
Keil 软件是一种统称,它包含编辑器、编译器、链接器、调试器等众多工具为一体的集成开发环境(IDE)。
9 z/ S+ o2 }: z& ^* GKeil MDK,也叫MDK-ARM,是针对【ARM内核】单片机,比如:STM32F1、 STM32F4、LPC1788、GD32等的编译器。' a5 R# [* [: ?1 }! X" ]

' n6 J. H( a% J1 N( R2 建立一个标准库函数工程1 {( d$ [1 G' y
2.1 前期准备
. m+ Y4 {3 ^8 n' f. v' W
在硬盘上建立一个任意的目录(例:stm32-led)中英文都可以,然后在它之下再新建 4个
3 t/ ~- h, T/ b# p文件夹,具体如下:
$ F$ `4 j! I' s7 I' L
* L3 M! e& S8 ?5 q! n5 n
b3d62c061e9b40419f4f8a9d8b2a28a7.png
/ b) p2 q( b+ t. n$ X %(CLY{05YS}(J%0VOH[YR5T.png 3 |; C5 O* V) z

1 l' I- F" H8 L4 F# M0 p9 J G_Q87~%]DTP$RNMYY)BR)0W.png
1 x4 Q) F4 P7 U! {" }! i1 @4 C3 `/ k( _/ @
2.2 建立工程- ?9 o! w1 U9 \. [
打开Keil软件后就会进入一个界面 ,如图:
& `" n) c5 r6 ]4 M( V! r6 e8 b+ P

+ A5 Z/ r4 [  j+ b3 O$ C. F7 F bc185155a5534a18b5c3b7dca3cfac17.png
4 S$ S; t/ r& S+ V
0 Z1 r( x+ p1 |2 T+ B" b
点击Project然后点击New uVision Project,就会出现一个新建工程界面,如图:
& D- V+ }7 z' H8 v1 i7 m# c& k, P9 Y6 u' {# t# b. ^2 c5 z5 w
e7e247dd758f41a3b9b2e25b0871d4d1.png 9 v/ W- k# s3 l& V+ E$ L/ P' c6 y- z
) e7 C( o: s( H+ T, i; }
abacc59ccb5b4e6496568956b1322fd2.png
1 @1 F: z6 ?* Q. u" f+ |9 y. m' P" s, B( f
将工程保存至 Project 文件夹下,并给这个工程起名叫stm32-led,软件会自动添加扩展名.uvproj,如上图。4 F5 B' b1 @4 H; k2 l
$ a- J6 {: V+ j) f5 i, J5 {
直接单击“保存”按钮,工程会自动保存为stm32-led.uvproj文件,下次要打开LED这个工程时,可以直接找到文件夹,双击.uvproj即可打开。
; |6 T' P" X& X% h# Q
  n6 ~6 R9 Q8 O. t, a保存之后会弹出一个对话框,如图:! I# L$ Q( O# ^2 k

1 `. I6 J5 g% K' Y- d
! ^* \+ I7 T$ q# B
07fa8e94a60349f9aa4e2fe761226bdb.png
! a" q% O7 q. E2 m6 l! a6 ]1 e2 Z; _! t& i0 O; _
这个对话框是用来选择单片机的型号的,例如我们使用的STM32F1系列的单片机。% G, Z* `5 z, A7 k1 f
6 w/ h' r; H5 {" T2 `2 e! R6 b) ]% E8 J
8fcd856658284b5e93835a955e9e433a.png
& Q  ?6 b$ {( Q! }9 U- x" `

; U/ V" f( Y+ Z# S  W由于MDK中只有ARM的内核选择,我们要使用STM32单片机需要自己手动添加
  w7 ^4 l5 |9 b# V8 w/ G9 V2 u" B9 S# R, o0 a% K
8f2556e6933f47c9b488ebe6b1cb188c.png 5 d7 I: T, E1 M8 ]3 w

! w5 a6 T1 Z+ i- X* M3 X4 `8 B1 V& V选择完成之后会有上图界面是用来在线添加库文件,我们先将其关闭后手动添加。* `. M5 H/ P( U5 t& j
2 m0 c6 V# W8 U  Q1 b& S, n; {( `* M3 U- i
2.3 建立组文件夹: l; V' v: ^6 t7 Y' P* z& c# ^
在新建的工程中添加 5 个组文件夹,用来存放各种不同的文件,文件从本地建好的工程文件夹下! H) e2 ^* W- |8 g
获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可。! T! H! }, x8 X  Y
. Y+ Q  S( Y: `9 l$ L
Y7M6IX97D3X$(J)EHI_L3)5.png
. n; Z7 f4 S! G+ ^7 g0 Z$ Q! m
  Y, a6 \1 @) V$ p, s 5ee5624d16c84b3c8fc57a11b26d92e1.png
( t0 @4 F' f$ j" @' v8 Z" l* o, i  i2 F
右键 Target 1 然后点击 Add Group…
: q9 M: n, B  g4 d

( Q3 V' M  X' W6 a+ g; @+ {+ y4 j2.4 添加文件
% i2 d3 ]7 S" C( Y3 i' R2 S6 v先把上面提到的文件从 ST 标准库中复制到工程模版对应文件夹的目录下,然后在新建的工程中添加这些文件,双击组文件夹就会出现添加文件的路径,然后选择文件即可。
' x+ r, y4 A4 l0 \6 n" `' Q# i1 o" \% @2 q. C% Y1 A. u% N  z7 z0 c& N
fe09f7700b254bf0a43a626aa8cd2815.png
2 B9 J9 Q7 W; ]! D. ?9 c
$ P/ ?6 }5 Q1 a; A
2.4 配置“魔术棒”选项卡6 W. J' Y4 q. v9 J% L% ]% H3 \
这一步的配置工作很重要,很多人串口用不了 printf 函数,编译有问题,下载有问题,都是这个步骤的配置出了错。
5 p) \9 j. T' p& o8 r+ w- D6 P  Z) _( t2 P$ b
(1) Target 中选中微库“Use MicroLib”,为的是在日后编写串口驱动的时候可以使用 printf 函数。
) B/ I0 r& z" L% d0 _- K" i' F& P
0 L( S; y3 u' Q( ?
d2b3d28c60e7415d80f3fbd53d27390c.png   Z3 V/ Z( ?9 k& Y: e& y- M
, V9 _$ @/ q5 v( A$ V3 K
(2) 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“output”文件夹,如果想在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上。( T( m. ^& R# P) b

& F- Z  c$ i, k# n4 r, g
602fff5942af42a38b772fbb5267e687.png
9 w. i+ ]% x( M2 _( T

& |) q* {; Q3 p(3) 在 Listing 选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹。
& e3 @& m3 Y6 Z. i' E. L1 W6 k7 D! t8 U. t3 K  k6 U6 X1 e8 i
1c5974528b354cbca0d059f12ae70d54.png
; Z+ }1 {; \4 W; D. A% ]% C2 |% ~$ C: y5 O9 d. i2 @+ [
(4) 在 C/C++ 选项卡中添加处理宏及编译器编译的时候查找的头文件路径。如果头文件路径添加有误,则编译的时候会报错找不到头文件。( K6 b4 s/ A# N
3 W2 N% N4 x5 t, m( u
6d765f03b2df4fd9893aefbf5525112d.png
8 A7 i) @% n% x( X3 v" f- h

; ]; P" q% D1 n) @% y# j* [. g在这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。
; {: G0 `5 N' r# Q

* W; K0 l2 b) ^4 wSTM32F10X_HD 宏:为了告诉 STM32 标准库,我们使用的芯片类型是 STM32 型号是大容量的,使 STM32 标准库根据我们选定的芯片型号来配置。
' ]/ v+ {. R# c& D) l) e4 U+ h
3 {  Y9 ^9 ~6 |USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件。
6 G" z6 V+ M/ s% c6 ]# X9 N! l
5 o3 c. N8 D6 K; \6 n5 @“Include Paths ”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这里配置出了问题。你把头文件放到了哪个文件夹,就把该文件夹添加到这里即可。(请使用图中的方法用文件浏览器去添加路径,不要直接手打路径,容易出错)。
2 U% O( E: H% s' x: j6 x6 ]0 Q. I: i' {' r3 z: h: ~0 f
2.5 建立 main 函数! D+ f+ m/ z" W& \3 ^

( Q3 y& Z" v5 ~8 y
328dd29055be464d94a22a86e50c9545.png
9 h0 m2 V6 S! z
0 _& `. Q- w! `敲出基本框架,编译:8 ]9 J0 N% k5 B. c+ y8 r6 ^

, {/ T4 M+ }7 u8 Q, s
1c62c323ef0141d38266489357b67458.png 1 T8 F. g+ Z* Q: B. F

! N7 m7 I( I! X% l. i$ R0 错误,0 警告,至此工程模板建立成功。
( ^4 y5 Z5 ^" \6 e; Z: R————————————————$ j, U% m9 E3 m) D
版权声明:倾晨灬雨曦, S5 i" y9 d7 W( j+ x$ W, ~

3 f4 D8 D% t6 a% S. \- p" M
9 ~7 w# {: G3 y0 L
收藏 评论0 发布时间:2023-1-8 14:00

举报

0个回答

所属标签

相似分享

官网相关资源

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