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

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

[复制链接]
STMCU小助手 发布时间:2021-11-20 23:00
1.最小硬件系统- h' r1 q2 b7 A  }$ W- l

: F( Q7 f- Y( W让 STM32F030 运行起来非常简单,在硬件上仅需给数字电源和模拟电源引脚(VDD,VDDA)供电,最好分别加上去耦电容。推荐值: VDD引脚加 1个4.7uF并联几个0.1uF 电容,VDDA 引脚加 1个1uF并联 1个0.01uF电容。电容值大些小些,甚至不加,对调试都不会有太大影响。
* F3 [2 P+ `( n
$ k. G0 e/ k. _8 V3 b需要注意的是 VDD 需要在2.4V和3.6V之间,VDDA需要大于等于VDD。当然我们最常见的用法是把VDD和VDDA都接到3.3V。  o! U5 i1 ~- I" |. y
  j/ ~* C; Z( z( ]; G1 k0 e
VDD和VDDA之间用磁珠隔离一下,有助于提高模拟部分电路(ADC, RC震荡器,PLL等)的稳定性。+ [* U) O, e( T4 O4 X

7 G# h' c+ f* v) j! }+ f, _# F
2020013017433142.png

% O; X3 `. ~) e* X- ~" _2 g
7 @" X7 r+ R- B5 j* z# @2 q如上图,是一个可以让单片机工作起来的最小硬件系统。Boot0 引脚需要下拉到地。注意电路中没有时钟,单片机使用的是内部自带的 RC时钟 HSI(High-speed internal (HSI) RC oscillator),频率是8MHz。这个时钟在出厂时会做校正,全温度范围内精度在5%左右。如果需要更高精度的时钟源,需要外加晶振,或直接把时钟输入至 OSC_IN引脚。
" a, S/ w8 ]1 @  ^7 R
- E! y, h5 A% B1 A2.下载调试器+ w% r/ h2 i. V  K
' c- @9 g$ D, |$ v6 f! A6 b
需要用带SWD调试接口的下载调试器,如 ST-LINK/V2,或 JLink。; h2 U" X$ M- f  r: q

$ L9 H3 V/ M! Q+ S9 D/ U下面是标准的 20引脚 JTAG/SWD 接口。我们只需要用到其中的 5个引脚:
( N* {  E+ Y7 q
" F( ^0 ?5 f6 {# u* g- x% J# ^1 VAPP, 接目标板上MCU的电源引脚 VDD。它的作用是让调试器知道目标板电压是多高。
7 k/ ]* C+ p4 X! q' i( i7 l9 ]4 N& J+ f
7 SWDIO, SWD 双向数据线。8 W- B! I, }( F4 j4 n) t, W. n

1 p5 }4 _4 M4 ?0 V& [8 X5 Y$ e9 SWCLK, SWD 时钟线。+ `. j; @& g/ _- [9 j' h" i" ?

8 W% Y" F: i: s/ z10 GND, 接目标板 GND。1 w5 T; b2 M, B, b

6 K3 H/ r1 m* d; j15 NRST, 复位引脚,接MCU的复位引脚。此引脚可以不接。* V  I: k5 ^7 n2 o" R+ m

2 M* L2 f1 v$ Z! `2 ?$ g& K注1:ST-LINK/V2的4,6,8,10,12,14,16,18,20 都是GND。其它调试器请参考所用调试器的文档。
7 w$ A4 ?  D5 n9 }# g9 ~9 K7 X- H0 Q
: @7 v4 C( t6 G注2:有的调试器可以从 19脚 对外供电。如果调试器没有供电能力,或目标板功耗较大,需要对目标板独立供电。
4 K9 n" b& `' z6 ]3 N
. X9 S$ \% T6 {9 L& _2 a! ~
20200130174323430.png
% K, s8 D* H  `& A

. Q  G5 I6 g7 Q4 T0 a! F: WST-Link安装后可以在设备管理器找到:
4 m! N) `  e; N1 k  n: a( V
4 y$ W2 o2 T  P) V6 t$ _$ M4 Y
20200130174330974.png

4 T' O" y9 t7 w- n1 k/ }* `7 _, c) x# J9 L3 I' }
3.Keil安装,官方代码的下载调试
( f- o+ ]& A' ~1 t- d8 f# ~- y% V: }/ r* r7 F/ A6 {$ L
从ST官方网站下载 Keil,和例程 STM32CubeF0。安装过程从略。$ }1 ~6 \3 j& R! G, {% ~7 ]& t. a

# ]3 b4 ~) }) C! H2 J9 t
20200130174327141.jpg
$ |# z2 _+ J$ j1 J

* F) L5 n2 D( g0 \  S1 @
20200130174330958.jpg

# l& ~9 z% l8 s. ^" @* ]) x) \
1 B: _% R+ Z7 k3 O5 z3 c- R解压并用 Keil打开下面这个工程:
. P1 N; m+ _$ p) I$ ~
4 q8 I$ n0 @2 }& M/ p\STM32Cube_FW_F0_V1.11.0\Projects\( I8 v! c5 @0 Z2 D
. v7 i9 M% V' _! }3 B# }- N' f
STM32F030R8-Nucleo\Examples\GPIO\GPIO_IOToggle\MDK-ARM\Project.uvprojx5 h% ?5 X4 f! h  k2 B" \+ L
1 i: ~0 C) f2 S& ^' J
20200130174323994.png

5 {1 l  @) j5 ]
8 K8 y, I3 R* w3 I% j! @我们可能需要通过 工程目标选项(Options for Target),把调试器更改为实际使用的调试器:7 N9 f* `( e, Z7 f( v, V
8 q" ?- [0 N- }. m6 d! j1 ^3 H: O
20200130174331151.png
; p+ q$ T. u* f  b- e( w
7 R7 c0 e- P; o- K4 d! Y5 R) W1 }
之后 编译代码,下载代码。在左下角可以看到进度条:' d3 ~" d) s. ]7 X3 t2 n9 ]' d

7 ~5 L# e' X" X1 Z) _
20200130174331462.png
6 a: k4 x+ u8 J# j. h3 r& \& |
, c: {: I) ]/ y8 z
下载成功后,点击 调试代码 按钮,进入下面这个界面。可以看到寄存器窗口(Registers),调用栈窗口(Call Stack + Locals)。8 y- H7 F' R% L- C$ T; [% D
( F8 g1 g# f  A
左上角有 复位,全速运行,停止,步入,单步,步出,运行到某行 等调试工具按钮。我们可以通过 View 这个菜单添加更多的窗口,比如 Watch Window, Memory Window, Disassembly Window 等。9 [. F4 X$ }  T+ O2 I, ^+ w
& T5 J: P+ }" E. M# i
20200130174331448.png
9 U8 J# B0 w$ [* t$ P
5 Q7 m- l! ^3 O: e9 h
我们点击 全速运行(Run)按钮,如果用的是 NUCLEO-F030R8 开发板,可以观察到板子上一个 LED灯(连至MCU的 PA5引脚)不停地闪烁。0 x1 s1 a  y; U1 g: B5 i# s4 K

& G% _! [. x& R9 s在这里我们可以看到下载代码后程序默认停在 main( ) 这个主程序入口。但是如果我们试着点一下复位按钮(RST),会发现程序停在了一段汇编代码里:
& K+ u5 ~) j; Z
0 m. e3 ^) S6 p, J
20200130174331367.png
" m- X& e$ p4 b) o6 ]) X

1 L" w/ i1 o6 T" G5 g那么究竟 MCU 从一上电到开始控制 LED 灯闪烁,都经历了些什么呢?我们会在接下来的文章里进一步探讨。
6 }) R$ l1 e2 o! Y4 m! u% ~/ b  p( p( q+ G
5 q. \8 Z- x4 x" L
收藏 评论0 发布时间:2021-11-20 23:00

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版