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

STM32F0单片机快速入门:开发环境的建立

[复制链接]
Belight 发布时间:2020-2-10 19:19
1.最小硬件系统
9 D* {# O2 A' Q$ f
让 STM32F030 运行起来非常简单,在硬件上仅需给数字电源和模拟电源引脚(VDD,VDDA)供电,最好分别加上去耦电容。推荐值: VDD引脚加 1个4.7uF并联几个0.1uF 电容,VDDA 引脚加 1个1uF并联 1个0.01uF电容。电容值大些小些,甚至不加,对调试都不会有太大影响。
需要注意的是 VDD 需要在2.4V和3.6V之间,VDDA需要大于等于VDD。当然我们最常见的用法是把VDD和VDDA都接到3.3V。
VDD和VDDA之间用磁珠隔离一下,有助于提高模拟部分电路(ADC, RC震荡器,PLL等)的稳定性。

. y! F# q) j0 d1 A' [" }$ Z
11.jpg
+ @) e' c# n- y0 b6 j# s
如上图,是一个可以让单片机工作起来的最小硬件系统。Boot0 引脚需要下拉到地。注意电路中没有时钟,单片机使用的是内部自带的 RC时钟 HSI(High-speed internal (HSI) RCoscillator),频率是8MHz。这个时钟在出厂时会做校正,全温度范围内精度在5%左右。如果需要更高精度的时钟源,需要外加晶振,或直接把时钟输入至 OSC_IN引脚。

. }8 X: {) u6 k& _* F& N9 q/ y# g, T
2.下载调试器
1 ~. }4 u# Y2 c$ \' `
需要用带SWD调试接口的下载调试器,如ST-LINK/V2,或 JLink。
下面是标准的 20引脚JTAG/SWD 接口。我们只需要用到其中的 5个引脚:
1 VAPP, 接目标板上MCU的电源引脚 VDD。它的作用是让调试器知道目标板电压是多高。
7 SWDIO, SWD 双向数据线。
9 SWCLK, SWD 时钟线。
10 GND, 接目标板 GND。
15 NRST, 复位引脚,接MCU的复位引脚。此引脚可以不接。
注1:ST-LINK/V2的4,6,8,10,12,14,16,18,20 都是GND。其它调试器请参考所用调试器的文档。
注2:有的调试器可以从 19脚对外供电。如果调试器没有供电能力,或目标板功耗较大,需要对目标板独立供电。
7 A$ e" j  E- G! J
22.jpg
, h0 E7 d0 h% A0 O
ST-Link安装后可以在设备管理器找到:

3 K$ J) x* H  h! O! G' `7 ^
33.jpg
7 R2 h& h7 a3 o3 m  A
3.Keil安装,官方代码的下载调试

' K! x+ `+ G' |' F
从ST官方网站下载 Keil,和例程 STM32CubeF0。安装过程从略。

2 s* e: Z) A0 R, a- A8 o; G' {
44.jpg

% \! w, P' Y3 G1 S, h. }- q
解压并用 Keil打开下面这个工程:
STM32Cube_FW_F0_V1.11.0Projects
STM32F030R8-NucleoExamplesGPIOGPIO_IOToggleMDK-ARMProject.uvprojx
( Y$ ]; M. x$ S+ k! i
55.jpg

* d5 T% t6 R2 r6 o+ E# T! ]
我们可能需要通过 工程目标选项(Options for Target),把调试器更改为实际使用的调试器:

1 M/ }0 a; ?0 z4 Q; A9 B; F, u6 `
66.jpg
! c. c& F1 d+ C$ L$ @
之后 编译代码,下载代码。在左下角可以看到进度条:
1 q: c# F4 Y1 r. ]& l7 N
77.jpg
/ u) P3 B9 _4 I! `7 J+ Y- o! t2 v
下载成功后,点击 调试代码 按钮,进入下面这个界面。可以看到寄存器窗口(Registers),调用栈窗口(Call Stack + Locals)。
左上角有 复位,全速运行,停止,步入,单步,步出,运行到某行 等调试工具按钮。我们可以通过 View 这个菜单添加更多的窗口,比如 Watch Window, MemoryWindow, Disassembly Window 等。

3 f; ^6 a/ s7 ?: U- i; s
88.jpg
7 N" \. s7 j4 |2 _
我们点击 全速运行(Run)按钮,如果用的是 NUCLEO-F030R8 开发板,可以观察到板子上一个 LED灯(连至MCU的 PA5引脚)不停地闪烁。
" M6 m% }5 n$ Z' m- N
在这里我们可以看到下载代码后程序默认停在 main( ) 这个主程序入口。但是如果我们试着点一下复位按钮(RST),会发现程序停在了一段汇编代码里:
5 h' L9 k5 G9 O/ Z& |9 u  z
99.jpg
+ z- u  n9 D$ p8 |

4 z! H* {+ O4 f, S6 C+ C
参考资料:
ST AN4325, Getting started with STM32F030xxand STM32F070xx series
ST-LINK V2 in-circuit debugger programmerfor STM8 and STM32 User Manual

7 D4 S) V+ o. e# V
8 `( B1 k& S' p6 V! F! ~* [  R
赞 收藏 评论0 发布时间:2020-2-10 19:19

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版