ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

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

[复制链接]
336|29
 楼主 | 2020-1-30 18:16 | 显示全部楼层 |阅读模式
本帖最后由 wangwenxue1989 于 2020-1-30 18:17 编辑

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


1. 最小硬件系统

让 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等)的稳定性。

182055e32ac63c7615.png
如上图,是一个可以让单片机工作起来的最小硬件系统。Boot0 引脚需要下拉到地。注意电路中没有时钟,单片机使用的是内部自带的 RC时钟HSI(High-speed internal (HSI) RC oscillator),频率是8MHz。这个时钟在出厂时会做校正,全温度范围内精度在5%左右。如果需要更高精度的时钟源,需要外加晶振,或直接把时钟输入至 OSC_IN引脚。

2. 下载调试器
需要用带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脚 对外供电。如果调试器没有供电能力,或目标板功耗较大,需要对目标板独立供电。
686235e32ac7f78b8f.png                               

ST-Link安装后可以在设备管理器找到:
   766045e32ac929946c.png


3. Keil安装,官方代码的下载调试
从ST官方网站下载 Keil,和例程 STM32CubeF0。安装过程从略。


307735e32ac9d400f6.png
309415e32aca70a14f.png
解压并用 Keil打开下面这个工程:
\STM32Cube_FW_F0_V1.11.0\Projects\
STM32F030R8-Nucleo\Examples\GPIO\GPIO_IOToggle\MDK-ARM\Project.uvprojx
985875e32acae2fe9d.png


我们可能需要通过工程目标选项(Options for Target),把调试器更改为实际使用的调试器:
177815e32acc2ec586.png


之后 编译代码,下载代码。在左下角可以看到进度条:

52845e32accc6bd88.png
下载成功后,点击调试代码 按钮,进入下面这个界面。可以看到寄存器窗口(Registers),调用栈窗口(Call Stack + Locals)。

左上角有复位,全速运行,停止,步入,单步,步出,运行到某行 等调试工具按钮。我们可以通过 View 这个菜单添加更多的窗口,比如 Watch Window, Memory Window, Disassembly Window 等。

46575e32acd6cc237.png
我们点击全速运行(Run)按钮,如果用的是 NUCLEO-F030R8 开发板,可以观察到板子上一个 LED灯(连至MCU的 PA5引脚)不停地闪烁。

在这里我们可以看到下载代码后程序默认停在 main( ) 这个主程序入口。但是如果我们试着点一下复位按钮(RST),会发现程序停在了一段汇编代码里:
506275e32aceb96e77.png

那么究竟 MCU 从一上电到开始控制 LED 灯闪烁,都经历了些什么呢?我们会在接下来的文章里进一步探讨。

参考资料:

ST AN4325, Getting started with STM32F030xxand STM32F070xx series
ST-LINK V2 in-circuit debugger programmerfor STM8 and STM32 User Manual



422255e32ace75a29e.png

使用特权

评论回复
| 2020-2-6 15:54 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
| 2020-2-6 15:57 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
| 2020-2-6 16:01 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
| 2020-2-6 16:03 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
| 2020-2-6 16:07 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
| 2020-2-6 16:11 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
| 2020-2-6 16:14 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
| 2020-2-6 16:18 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
| 2020-2-6 16:21 | 显示全部楼层
非常感谢楼主分享

使用特权

评论回复
| 2020-2-7 21:44 | 显示全部楼层
请问STM32F030与STM32F051 的区别

使用特权

评论回复
| 2020-2-7 21:44 | 显示全部楼层
用STM32F0还是用STM32F1哪个更有性价比

使用特权

评论回复
| 2020-2-7 21:44 | 显示全部楼层
stm32F051和stm32f103哪个好点  

使用特权

评论回复
| 2020-2-7 21:44 | 显示全部楼层
           

使用特权

评论回复
| 2020-2-7 21:45 | 显示全部楼层
STM32F0的开发方式有何不同  

使用特权

评论回复
| 2020-2-7 21:45 | 显示全部楼层
stm32f0的固件库常用的有哪些版本  

使用特权

评论回复
| 2020-2-7 21:45 | 显示全部楼层
stm32f0xx 没有外接晶振,怎么配置

使用特权

评论回复
| 2020-2-7 21:45 | 显示全部楼层
STM32F070串口发送接收基地址在哪儿找

使用特权

评论回复
| 2020-2-7 21:46 | 显示全部楼层
CAN和USB能同时使用吗

使用特权

评论回复
| 2020-2-7 21:46 | 显示全部楼层
怎样将stm32f0的不同端口合并为一个组操作  

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表