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

【经验分享】STM32F0单片机快速入门二: 开发环境的建立

[复制链接]
STMCU小助手 发布时间:2021-11-20 23:00
1.最小硬件系统
3 ^$ q* v/ _/ w& }! ]
, L3 I9 u* ~! x1 L  s% ]让 STM32F030 运行起来非常简单,在硬件上仅需给数字电源和模拟电源引脚(VDD,VDDA)供电,最好分别加上去耦电容。推荐值: VDD引脚加 1个4.7uF并联几个0.1uF 电容,VDDA 引脚加 1个1uF并联 1个0.01uF电容。电容值大些小些,甚至不加,对调试都不会有太大影响。
5 \* b3 R8 G( X) Q! c/ R7 v  j# Y$ C! G- N1 @
需要注意的是 VDD 需要在2.4V和3.6V之间,VDDA需要大于等于VDD。当然我们最常见的用法是把VDD和VDDA都接到3.3V。/ i( H2 Z' E  t/ O" b5 _

9 P0 ^( e) S  L" ^3 AVDD和VDDA之间用磁珠隔离一下,有助于提高模拟部分电路(ADC, RC震荡器,PLL等)的稳定性。
+ |0 v: @8 Z3 P" B8 j' n% y; q3 _5 [) }$ M
2020013017433142.png

4 n: j) D! Q- B1 o' p" q( |/ W/ @; Z2 e3 T
如上图,是一个可以让单片机工作起来的最小硬件系统。Boot0 引脚需要下拉到地。注意电路中没有时钟,单片机使用的是内部自带的 RC时钟 HSI(High-speed internal (HSI) RC oscillator),频率是8MHz。这个时钟在出厂时会做校正,全温度范围内精度在5%左右。如果需要更高精度的时钟源,需要外加晶振,或直接把时钟输入至 OSC_IN引脚。  F) r5 u# `% n# K0 G3 Z7 Y
5 M+ Q! l$ m$ r, ^
2.下载调试器
1 D. {) q% n4 J4 Y! W4 i6 C
5 M+ k. w$ t5 O, @; k* X需要用带SWD调试接口的下载调试器,如 ST-LINK/V2,或 JLink。& L5 V- Y: ^$ K1 R) k* `; [

- n( ^+ D. v( q' a下面是标准的 20引脚 JTAG/SWD 接口。我们只需要用到其中的 5个引脚:
: ^! [% h) }8 {& ~& n: q+ \6 x4 C/ F% F
1 VAPP, 接目标板上MCU的电源引脚 VDD。它的作用是让调试器知道目标板电压是多高。# M/ @* `+ t5 ?; e

2 _: }4 Q& C& c4 y& m7 SWDIO, SWD 双向数据线。4 c/ I  o, a) j; N6 P
* y) T2 }6 K0 p. p9 L7 J
9 SWCLK, SWD 时钟线。3 h6 l! w" V0 H7 b# f& k& K' G6 ]% @
/ G: Q- Y  {" x) B) i- h
10 GND, 接目标板 GND。) a; t0 u2 y! z$ |: N5 E- C

. D: q7 q1 I1 t+ b4 a15 NRST, 复位引脚,接MCU的复位引脚。此引脚可以不接。
* U+ z3 i. m. J9 J! ?9 l0 i, N5 ?4 A9 x% p  [2 B
注1:ST-LINK/V2的4,6,8,10,12,14,16,18,20 都是GND。其它调试器请参考所用调试器的文档。4 c2 }7 f6 V0 W( D

# S  Q& x$ X9 l3 d8 O$ q! ]7 B注2:有的调试器可以从 19脚 对外供电。如果调试器没有供电能力,或目标板功耗较大,需要对目标板独立供电。3 p! `% h' ~6 r4 M( }6 Q
: _9 m6 p3 g9 ~* C" `! x0 q' p
20200130174323430.png

: I' f+ P4 W: \/ e! r0 ~, {# |3 o3 }) g3 d6 w
ST-Link安装后可以在设备管理器找到:1 m/ `- _% L# p  B
( y- w* H! _. N4 o) @
20200130174330974.png
9 U: C( ~( A6 `% Z
  R8 @2 w% y+ G. h1 {3 i# a
3.Keil安装,官方代码的下载调试
7 R4 [8 U& f4 o8 ^; F9 Z2 A1 b. x. q- f* {4 b$ e+ _
从ST官方网站下载 Keil,和例程 STM32CubeF0。安装过程从略。: b" l8 K0 ~- p' G5 Z" g  I- z
6 Y3 n5 V2 n. a* N' [. r
20200130174327141.jpg

- K2 }" q# h( }2 ], ^( T
/ i8 j8 q: R  d4 t
20200130174330958.jpg

2 G8 C3 i! \; w8 v: a0 @, \. l& p2 o1 C! F7 B& @
解压并用 Keil打开下面这个工程:. @+ m- u: f; e7 I* o  @/ u

, D' g9 N3 G9 |% C0 }5 L\STM32Cube_FW_F0_V1.11.0\Projects\
1 {" A& R) L& m
: C% U; B- p; v. f* ~  ESTM32F030R8-Nucleo\Examples\GPIO\GPIO_IOToggle\MDK-ARM\Project.uvprojx
$ |' k' O! W$ Y4 ~) u7 n6 J2 s- @% K# M
0 J$ I/ _$ ?1 V  m: ~' @7 z
20200130174323994.png

3 E0 U' h. O1 @$ \) x% x! m6 j( P4 b: F3 U/ T' Z4 m6 G
我们可能需要通过 工程目标选项(Options for Target),把调试器更改为实际使用的调试器:
: W- j0 y! k2 n4 O, m6 j, o
* q2 a; c- ]+ W9 C) a  n3 V
20200130174331151.png

% R3 X# B+ L- K& d5 c
/ V* p( N! g9 r( J0 u2 t1 U之后 编译代码,下载代码。在左下角可以看到进度条:
% B$ x- f8 u9 j* p7 N
. a% B' ]' c! }& Y
20200130174331462.png
) ?" E5 F- g1 W+ X$ c" Z  \' y

- K; l* @! N) ^; E下载成功后,点击 调试代码 按钮,进入下面这个界面。可以看到寄存器窗口(Registers),调用栈窗口(Call Stack + Locals)。9 |( X/ ]! K7 I5 ~% x
+ M; ~0 m$ q3 G
左上角有 复位,全速运行,停止,步入,单步,步出,运行到某行 等调试工具按钮。我们可以通过 View 这个菜单添加更多的窗口,比如 Watch Window, Memory Window, Disassembly Window 等。% R' k/ l0 G2 c, W7 I8 u; ?
+ z6 i" H9 e# Q* |8 g
20200130174331448.png
+ f( R' |' }+ G% [; N- ^

5 @# G  N) E: F/ I我们点击 全速运行(Run)按钮,如果用的是 NUCLEO-F030R8 开发板,可以观察到板子上一个 LED灯(连至MCU的 PA5引脚)不停地闪烁。
" w+ B$ @" B: ]7 K6 n3 O5 t( H: e! @9 K7 L
/ ?' u4 t/ ~( e4 @: u; ^6 s在这里我们可以看到下载代码后程序默认停在 main( ) 这个主程序入口。但是如果我们试着点一下复位按钮(RST),会发现程序停在了一段汇编代码里:
  w% v2 P$ J; O* @/ H( [/ I1 Z+ y8 G$ }, V( ~8 V
20200130174331367.png
" S5 ~& x$ D' {0 |2 O  }
( [+ m  q+ X( y& P) J" D! `
那么究竟 MCU 从一上电到开始控制 LED 灯闪烁,都经历了些什么呢?我们会在接下来的文章里进一步探讨。
) K: P; J% j) c6 f7 @( V, W
, X- U) j$ B$ b. L: k0 D2 Q  r3 |4 n2 n: d
收藏 评论0 发布时间:2021-11-20 23:00

举报

0个回答

所属标签

相似分享

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