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

发布者:美梦小狮子最新更新时间:2023-07-13 来源: elecfans1.最小硬件系统 让 STM32F030 运行起来非常简单,在硬件上仅需给数字电源和模拟电源引脚(VDD,VDDA)供电,最好分别加上去耦电容。推荐值: VDD引脚加 1个4.7uF关键字: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等)的稳定性。

如上图,是一个可以让单片机工作起来的最小硬件系统。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脚 对外供电。如果调试器没有供电能力,或目标板功耗较大,需要对目标板独立供电。

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

3.Keil安装,官方代码的下载调试

从ST官方网站下载 Keil,和例程 STM32CubeF0。安装过程从略。

解压并用 Keil打开下面这个工程:

STM32Cube_FW_F0_V1.11.0Projects

STM32F030R8-NucleoExamplesGPIOGPIO_IOToggleMDK-ARMProject.uvprojx

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

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

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

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

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

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

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

参考资料:

ST AN4325, Getting started with STM32F030xx and STM32F070xx series

ST-LINK V2 in-circuit debugger programmer for STM8 and STM32 User Manual


关键字:STM32F0  单片机  开发环境 引用地址:STM32F0单片机快速入门二 开发环境的建立

上一篇:STM32F0单片机快速入门三: MCU启动过程
下一篇:STM32F0单片机快速入门一: ARM架构与STM32F0

推荐阅读最新更新时间:2024-11-13 11:11

单片机和LED灯阵制作的贪吃蛇趣味小游戏
最近几天天气总是在下雨,对于不爱玩手机游戏的我来说过得太无聊了。 想想咋么才能让时间过得快一点呢,这个时候我看到电视里的一个广告类似贪吃蛇的,于是抱着试试看的想法 用单片机和LED灯阵做了一个贪吃蛇的游戏 基本功能都有,玩起来体验还可以,总算可以充分利用时间了。 下面我就把制作过程和文件分享给大家 用一个18650电池供电,用一个单片机进行控制 名称:8X8点阵贪吃蛇 功能: 按右键开始、中间可以选择速度1最慢9最快(飞一般的感觉) 速度2和9,哎呀呀,自己撞死了(可以穿墙,撞到自己的身体死亡) 按中间确定可查看吃到了多少 暂停 废话不多说先上实物图 实物图1 实物图2 焊接实物图1 由于时间比较急线
[单片机]
用<font color='red'>单片机</font>和LED灯阵制作的贪吃蛇趣味小游戏
MCS-51单片机的前缘后世
其中关于intel发展史部分摘自百度。 单片机,是一种采用超大规模集成电路技术把CPU、RAM、ROM、IO、中断系统、定时器/计时器等电路模块集成到一块硅片上构成的计算机系统,如下图是一块51内核的STC单片机实物图。 单片机基本组成:单片机由运算器、控制器、存储器、输入输出电路、中断系统、定时器/计数器构成,如下为普通单片机内部结构图。 单片机诞生于20世纪70年代末,经历了三大阶段分别是SCM、MCU、SoC。 单片机阶段: 1.SCM即是单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,单片机与通用计算机分道扬镳。在嵌入式系
[单片机]
MCS-51<font color='red'>单片机</font>的前缘后世
一款高性能avr单片机频率计程序 10khz
#include iom16v.h #define uchar unsigned char #define uint unsigned int const uchar SEG_CODE = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00}; int main() { uchar LastKey = 0xff; DDRA = 0xff; DDRB = 0xff; DDRC = 0xff; PORTC = 0xff; DDRD = 0x00; PORTD = 0
[单片机]
一款高性能avr<font color='red'>单片机</font>频率计程序 10khz
控制灯闪烁的MCS-51单片机程序举例及详解
要让灯持续地闪烁,这就有一定的实用价值了,比如能把它当成汽。怎样才能让灯持续地怎样才能让灯持续地闪烁呢?实际上就是要灯亮一段时间,再灭一段时间,也就是说要P10持续地输出高和低电平。怎样实现这个要求呢?请考虑用下面的指令是否可行: SETB P10 CLR P10 这是不行的,有两个问题,第一,计算机执行指令的时间很快,执行完SETB P10后,灯是灭了,但在极短时间(微秒级)后,计算机又执行了CLR P10指令,灯又亮了,所以根本分辨不出灯曾灭过。第二,在执行完CLR P10后,不会再去执行SETB P10指令,所以以后再也没有机会让灭了。   为了解决这两个问题,我们能做如下设想,第一,在执行完SETB P10后,延时一段时
[单片机]
英飞凌将亮相2024国际嵌入式展,集中展示面向绿色未来的创新半导体和微控制器解决方案
【2024年4月8日,德国慕尼黑讯】 低碳化和数字化是当今时代人们面临的两大核心挑战,人类社会需要依靠创新和先进的技术,才能破除挑战、推动转型进程。在德国纽伦堡举办的2024国际嵌入式展(Embedded World 2024)上,英飞凌科技股份公司将展示其创新的半导体解决方案如何支持与推动低碳化和数字化发展 。特别是微控制器在其中扮演着重要的角色,微控制器能够为各种应用提供核心技术支撑,其用途广泛涵盖电动汽车、可再生能源系统、智能家居和工业自动化等领域。有鉴于此,英飞凌将展示其采用最新技术、融合各种创新功能(如增强的安全性和高精度)设计的高质量微控制器,该微控制具有出色的性能,同时能够实现低功耗。 英飞凌将亮相2024国际
[半导体设计/制造]
英飞凌将亮相2024国际嵌入式展,集中展示面向绿色未来的创新半导体和<font color='red'>微控制器</font>解决方案
PIC单片机INT0中断的原理
RB0/INT0、RB1/INT1及RB2/INT2引脚的外部中断是边沿触发的; 如果INTCON2 寄存器中相应的INTEDGx位被置1,则为上升沿触发;如果该 INTEDGx 位清零,则为下降沿触发。 当RBx/INTx引脚上出现一个有效边沿时,相应标志位 INTxF 被置1 。在重新使能该中断前,必须在中断服务程序中先用软件将标志位INTxF 清零。 通过对相应的使能位INTxE 清零,可以禁止该中断。 如果INTxE 位在进入休眠状态前被置1 ,则所有的外部中断(INT0、INT1 及INT2)能把处理器从休眠状态中唤醒。如果全局中断使能位 GIE 被置1 ,则处理器将在唤醒之后转移到中断向量。INT1 和INT
[单片机]
PIC<font color='red'>单片机</font>INT0中断的原理
平凡单片机教学——第十三讲 单片机指令(七)
条件转移指令: 条件转移指令是指在满足一定条件时进行相对转移。 1.判A内容是否为0转移指令 JZ rel JNZ rel 第一指令的功能是:如果(A)=0,则转移,否则顺序执行(执行本指令的下一条指令)。转移到什么地方去呢?如果按照传统的方法,就要算偏移量,很麻烦,好在现在我们可以借助于机器汇编了。因此这第指令我们可以这样理解:JZ 标号。即转移到标号处。下面举一例说明: MOV A,R0 JZ L1 MOV R1,#00H AJMP L2 L1: MOV R1,#0FFH L2: SJMP L2 END 在执行上面这段程序前如果R0中的值是0的话,就转移
[单片机]
平凡<font color='red'>单片机</font>教学——第十三讲 <font color='red'>单片机</font>指令(七)
基于51单片机驱动S8330E C语言程序
//S8330E是日本精工的一个电源IC,需要软件调节电压输出值 #include reg52.h #include intrins.h sbit DIN = P1^0; sbit CLK = P1^1; sbit STB = P1^2; sbit Key = P3^4; sbit LED = P1^7; void Delay(unsigned int MS) { unsigned char us,usn; while(MS!=0) { usn = 2; //for 12M while(usn!=0) { us=0x
[单片机]

推荐帖子

MSBL格式的固件怎么烧录
我手头上的开发板是:MAX32630FTHR调试器是:DAP-LINK现在有一个MSBL格式的固件程序,想通过DAP-LINK烧录进去,有没有什么软件可以直接烧录进去的?MSBL格式的固件怎么烧录
wufeijian MAX32630FTHR设计大赛
合泰BS83B04A-4有关PA0,PA2不能输出的问题。
大家好:有个问题想请教下大家,如题,合泰BS83B04A-4有关PA0,PA2不能输出的问题。就是PA0和PA2控制不了。已经把_papu=0xff(上拉打开),_pac=0b11100010;设置成输出。然后把_pa=0x00;这时,PA0,PA2不能输出0。一直都是输出高电平。不知道为什么,有用过的朋友可以指教下吗。合泰BS83B04A-4有关PA0,PA2不能输出的问题。PA0,PA2,是两个io吧。PA其他的io能否输出正常的高低电平呢。如果只有两个io不对,其
liaoyuanhong 国产芯片交流
问个CE下SDK中的PLAYWND例子问题
我在VC里用的SDK中的例子DSPlay中的程序,播放视频文件一点问题也没有,清晰度和速度都很好,而且,RMVB,RM,AVI,MPEG格式都能支持,但我改用CE下的PLAYWND例子上开发板上播放就不行了,只支持一个MPEG格式的电影,AVI格式能识别但不能播放,RMVB等格式干脆连识别都不识别了.请问这是怎么回事呀.而且,用它播放全屏的时候特别卡,我想这可能是内存小的事,但有没有解码的事呢??这两个程序我分析了下,发现几乎一样,按理说不能差这么都呀,有大人们知道吗???是不是我CE里面没
999626 嵌入式系统
关于Wince 远程调试
CE5.0自己定制的系统,将程序下载到板子上运行一切正常。F5远程调试的时候报错:无法找到PBworkplace\\GLX701\\...\\commdlg.dll可是我的PBworkplace下并没有GLX701这个文件夹。程序是别人写的,我只是搬过来做些改动。不知道是我定制系统的问题,还是EVC下程序的问题。如何解决呢?关于Wince远程调试EVC是个什么样的程序,是不是调用了系统中没有的DLL系统中有commdlg.dll这个dll,只是不在GLX701这个文件夹下。
shinesnow WindowsCE
RT9293B电源IC输出负电压情况
用RT9293B搞了个LCD的VGH/VGL电压电路,电路图如下TFT_VGH输出还算正常,有10.45V左右但是TFT_VGL只有-2.5V左右电容C1的上端只有-5V左右。看上去应该是只有正向输出的一半这是怎么回事呢RT9293B电源IC输出负电压情况@maychang@dontium@dragongtr@qwqwqw2088大侠们帮忙看看这个问题吧电容C1容量可能太小了。增加C1容量试试看。另外,TFT_VGL用R1和R10两支电阻分压,是怎么回事?要确
jplzl10000 LED专区
【2024 DigiKey创意大赛】赛博竖笛完成
赛博竖笛作者:jd3096一、作品简介在创客领域已经有很多前辈尝试制作各类乐器,其中以各种电子琴居多,因为其实现简单受到各类创作者的青睐,这次大赛当我看到物料中有气压传感器的时候就产生了一个大胆的想法,尝试制作一个吹奏类的电子乐器。此次不再使用简单的蜂鸣器作为发声装置,而是使用有线MIDI和BLE蓝牙无线MIDI协议作为乐器使用,可以得到更好的音质和体验。本作品的使用了ESP32-S3-DEVKITC-1-N8R8开发板,和Omron2SMPP03气
jd3096 DigiKey得捷技术专区
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved