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

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

[复制链接]
STMCU小助手 发布时间:2021-11-20 23:00
1.最小硬件系统
. Y% Y, U0 X+ x; ~2 n  p1 M
. t. ~1 s" S: X5 `: O0 L让 STM32F030 运行起来非常简单,在硬件上仅需给数字电源和模拟电源引脚(VDD,VDDA)供电,最好分别加上去耦电容。推荐值: VDD引脚加 1个4.7uF并联几个0.1uF 电容,VDDA 引脚加 1个1uF并联 1个0.01uF电容。电容值大些小些,甚至不加,对调试都不会有太大影响。( A* Y1 I7 t( S9 K; c% }

$ m/ u  y$ l, b* B7 R$ U需要注意的是 VDD 需要在2.4V和3.6V之间,VDDA需要大于等于VDD。当然我们最常见的用法是把VDD和VDDA都接到3.3V。8 m( |: p; e' \& w

) r9 ~0 w% M  bVDD和VDDA之间用磁珠隔离一下,有助于提高模拟部分电路(ADC, RC震荡器,PLL等)的稳定性。
1 C% B. o8 u& T, {' e0 w
$ S- j+ t* \" _' g
2020013017433142.png

/ L. G) f0 W; }. h$ S/ A7 K+ U% x8 E
如上图,是一个可以让单片机工作起来的最小硬件系统。Boot0 引脚需要下拉到地。注意电路中没有时钟,单片机使用的是内部自带的 RC时钟 HSI(High-speed internal (HSI) RC oscillator),频率是8MHz。这个时钟在出厂时会做校正,全温度范围内精度在5%左右。如果需要更高精度的时钟源,需要外加晶振,或直接把时钟输入至 OSC_IN引脚。- j5 ~* @7 c7 s( W- c2 X

( ?( \; d( F. k2.下载调试器
  ~" P. [8 |6 a2 ~2 ~7 a) x0 G5 S- Z, D9 e
需要用带SWD调试接口的下载调试器,如 ST-LINK/V2,或 JLink。8 C( R1 V0 \( [
% e1 v  b$ F7 e4 H8 S, e) _
下面是标准的 20引脚 JTAG/SWD 接口。我们只需要用到其中的 5个引脚:
+ ~+ B+ h$ Y+ u/ I- ]
, }: A" t/ V' j5 ]1 VAPP, 接目标板上MCU的电源引脚 VDD。它的作用是让调试器知道目标板电压是多高。
" p: ?# Z+ E/ P0 m6 g) x, \+ L. S/ c% Z( v# r+ n
7 SWDIO, SWD 双向数据线。6 @; p( v' x  d5 `
* T# V* y* x. ?
9 SWCLK, SWD 时钟线。
3 o! K  D1 ?4 ^' e0 d3 y7 D. N  v( A# K; a- R* h! |' F
10 GND, 接目标板 GND。5 q/ ]" L2 a' p( G( V8 i9 K

+ t" g! K$ U  @" h! X15 NRST, 复位引脚,接MCU的复位引脚。此引脚可以不接。6 J+ P9 W+ M8 {" b% |( s, _/ V

, V- O( p# N" _" q$ W) ?- f注1:ST-LINK/V2的4,6,8,10,12,14,16,18,20 都是GND。其它调试器请参考所用调试器的文档。
0 h2 K) W* \" E0 X4 _3 N2 M' Y6 k: c* k& ]  j
注2:有的调试器可以从 19脚 对外供电。如果调试器没有供电能力,或目标板功耗较大,需要对目标板独立供电。) j) M+ N2 v" N4 ~2 E

+ Y1 W: q4 u1 T: K
20200130174323430.png
% x+ m% l1 G" N1 U# N7 U) _& D
% O7 m" k, @4 g$ k
ST-Link安装后可以在设备管理器找到:1 I4 z9 ^! c  b& c
& q+ j# V2 y5 ]* J
20200130174330974.png
9 W9 O0 W! e% m9 B3 w  d' |- W" v

3 f/ @5 d9 u" w6 @3.Keil安装,官方代码的下载调试
8 F* G& F* b( a9 V5 U# j5 O; t; Y  b: E6 p/ g
从ST官方网站下载 Keil,和例程 STM32CubeF0。安装过程从略。2 g# ^5 v4 Y& O0 l4 |& f

7 g$ s. j8 L8 w+ q- ^) v7 w
20200130174327141.jpg

+ w, x; D# v# M) @
7 `9 N' s# f& b7 g6 @& J  m
20200130174330958.jpg
, s( G" ~! [& I

! v, A8 K. j! i# l2 M7 u( n6 g解压并用 Keil打开下面这个工程:* n. u+ `: j! Y9 f5 e3 c

6 O& M$ X3 s4 J9 F! ?\STM32Cube_FW_F0_V1.11.0\Projects\
5 a3 g2 r: O3 X3 I" X; S7 v# [  ]' P9 n, p, m
STM32F030R8-Nucleo\Examples\GPIO\GPIO_IOToggle\MDK-ARM\Project.uvprojx# ?' m# M' @( O1 b7 W$ s3 W8 Y
) j$ L7 k. ]3 p+ y
20200130174323994.png

( ~! F* S: W' [, K# I8 P
. o) B+ z+ o2 }2 k5 X9 F我们可能需要通过 工程目标选项(Options for Target),把调试器更改为实际使用的调试器:7 X1 c: |6 b& R6 @! N, n; h

  ^, l/ r; |6 ?" U* z7 @
20200130174331151.png

8 A% A. S/ y. Q# D4 g0 u! P' ^; B9 t
/ W! i% I5 [1 W) ?; i6 k& t之后 编译代码,下载代码。在左下角可以看到进度条:6 q' P, T! Y/ l" ]# w) h/ [2 U- U
6 V6 g/ }  V* M/ Q) b8 J+ G
20200130174331462.png

  _7 a7 T  W: ]. T/ |6 V7 S& V4 a, @; f- z
下载成功后,点击 调试代码 按钮,进入下面这个界面。可以看到寄存器窗口(Registers),调用栈窗口(Call Stack + Locals)。
% |0 ]8 C6 r% g: H- x
! W: O" l' \, M9 F  p左上角有 复位,全速运行,停止,步入,单步,步出,运行到某行 等调试工具按钮。我们可以通过 View 这个菜单添加更多的窗口,比如 Watch Window, Memory Window, Disassembly Window 等。- d0 _6 c6 h0 G! ?0 l6 v$ a
: s4 \4 @$ |: w' ~9 o5 `
20200130174331448.png
5 E& K. I; j- v1 O

4 r" M+ \' {% {7 i0 d1 Q# M  B我们点击 全速运行(Run)按钮,如果用的是 NUCLEO-F030R8 开发板,可以观察到板子上一个 LED灯(连至MCU的 PA5引脚)不停地闪烁。
" E6 [, C& q, D3 f7 q
3 [3 a3 J" `7 ~在这里我们可以看到下载代码后程序默认停在 main( ) 这个主程序入口。但是如果我们试着点一下复位按钮(RST),会发现程序停在了一段汇编代码里:
/ Y) l( p; J" V" e4 R
* O/ t# I3 L: @: w9 m8 H5 ]
20200130174331367.png
+ e! ^% G8 b, D% a# \  O

  b% s0 X" e; x; G5 y$ V那么究竟 MCU 从一上电到开始控制 LED 灯闪烁,都经历了些什么呢?我们会在接下来的文章里进一步探讨。
# G+ k8 f5 m  M7 m. D* Z
- U3 b. \3 }  A% D/ \: }+ S' p5 n. O2 o' L
收藏 评论0 发布时间:2021-11-20 23:00

举报

0个回答

所属标签

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