1.最小硬件系统
运行STM32F030非常简单。在硬件中,只有数字电源和模拟电源引脚(VDD,VDDA)需要供电。最好分别增加去耦电容。推荐值为: VDD引脚加一个4.7uF电容与几个0.1uF电容并联,VDDA引脚加一个1uF电容与一个0.01uF电容并联。电容大一点或者小一点,即使不加,对调试也没有太大影响。
请注意,VDD需要在2.4V和3.6V之间,VDDA需要大于或等于VDD。当然,我们最常见的用法是将VDD和VDDA都连接到3.3V
有助于提高模拟电路(ADC、RC振荡器、PLL等)的稳定性。)用磁珠隔离VDD和VDDA。
如上图,是能让单片机工作的最小的硬件系统。0引脚需要下拉至地。注意电路中没有时钟。MCU使用频率为8MHz的内部RC时钟HSI(高速内部(HSI) RC振荡器)。这个时钟会在工厂进行校准,在整个温度范围内,它的精度约为5%。如果需要更精确的时钟源,需要增加一个晶体振荡器,或者直接将时钟输入OSC_IN引脚。
2.下载调试器
需要使用带有SWD调试接口的下载调试器,如ST-LINK/V2或JLink。
以下是标准20引脚JTAG/SWD接口。我们只需要使用其中的5个引脚:
1个VAPP,连接到目标板上MCU的电源引脚VDD。它的功能是让调试器知道目标板电压有多高。
7 SWDIO,SWD双向数据线。
9 SWCLK、SWD时钟线。
1GND,连接到目标板GND。
1第一个reset引脚,连接到MCU的reset引脚。此引脚可以断开。
注:圣林克/V2的4、6、8、10、12、14、16、18和20是GND。对于其他调试器,请参考您正在使用的调试器的文档。
注意:一些调试器可以从19个引脚提供外部电源。如果调试器没有供电能力,或者目标板功耗很大,就需要独立给目标板供电。
安装后,可以在设备管理器中找到ST-Link:
3.Keil安装,官方代码的下载调试
从ST官网下载Keil和套路STM32CubeF0。安装过程被省略。
用Keil解压并打开下面的项目:
\ STM 32 cube _ FW _ F0 _ v 1 . 11 . 0 \ Projects \
STM 32 f 030 r 8-Nucleo \ Examples \ GPIO \ GPIO _ io toggle \ MDK-ARM \ project . uvprojx
我们可能需要通过目标选项将调试器更改为实际的调试器:
然后编译代码,下载代码。您可以在左下角看到进度条:
下载成功后,点击调试代码按钮,进入如下界面。您可以看到寄存器和调用堆栈区域设置。
左上角有调试工具按钮,如复位、全速运行、停止、步入、步出、运行到某一行等。我们可以通过视图菜单添加更多的窗口,比如监视窗口、内存窗口、反汇编窗口等。
我们单击运行按钮。如果我们使用NUCLEO-F030R8开发板,我们可以观察到板上的一个LED灯(连接到MCU的PA5引脚)不断闪烁。
这里我们可以看到,下载完代码后,程序默认停在main()的主程序入口。但是如果我们尝试点击复位按钮(RST),我们会发现程序在一段汇编代码中停止了:
那么MCU从上电到开始控制LED灯闪烁的那一刻经历了什么?我们将在下一篇文章中进一步讨论。
参考资料:
ST AN4325,STM32F030xx和STM32F070xx系列入门
STM8和STM32的ST-LINK V2在线调试器编程器用户手册