STM32最小系统组成

单片机最小系统,也就是能够使得单片机正常运行程序,最少需要连接哪些器件。一般来说,STM32最小系统由四部分组成:

  • 电源电路

  • 复位电路

  • 晶振电路

  • 下载电路

STM32单片机由ARMCortexM3、总线矩阵、外设组成。单片机开发板能够做哪些事情是自己的选择。我们可以制作一款STM32最小系统核心开发板,当然根据实际项目的需求,加上单片机的某些特定外设模块。

简单说,要利用到STM32芯片所有引脚来设计具有特定或者通用功能的开发板。首先要把STM32最小系统画出来,之后再添加需要用到的外设。

电源电路

VDD表示数字电源的正极,而VSS是负极。VDDA用来表示模拟电源正极(供电给ADC、DAC模块),VSSA是负极。VREF+是参考电压输入引脚正极,VREF-是对应的负极。
    ADC、DAC分别负责模数、数模转换。在场合中,需要较的高信噪比,为此把模、数信号分开,来规避彼此影响。于是有了数、模电源引脚之分。为了给模拟电源提供标准电压信号,需要用到VREF引脚。在对噪声要求不高的情况下,只需要做简单隔离即可。比如,分别在VDD、VDDA以及VSS、VSSA之间接上0Ω电阻。

把VREF+与VDDA连接,把VREF-与VSSA连接。在实际应用中,VREF+用来连接标准的电压输出,比如REF3133,产生标准的3.300V电压,如下图所示。

因为STM32具有RTC功能(实时时钟),有VBAT(电池)引脚(接电池正极)。出于安全考虑,设计如下电路。既可以在有外接电源时保护电池,又可以在没有外接电源时给RTC供电。

原理容易理解,利用了二极管的单向导通性。

复位电路

复位就是通常说的重启,STM32复位引脚是低电平复位,而正常工作状态时复位引脚是处于高电平状态。

晶振电路

STM32有两组晶振,给单片机提供主时钟的晶振和给RTC提供时钟的晶振。实际上,若用不到RTC功能,那么RTC晶振可不连接。

上图主时钟晶振,为了程序的通用性一般用8M。

上图是RTC时钟晶振,需要连接32.768K的晶振。32.768KHZ是一个很有意义的数字,我们每天都要用到它,只是生活中太少有人去关注了。32.768KHZ比较容易分频以便于产生1秒的时钟频率,因为32768等于2的15次方,也就是int类型的最大整数。我们每天用的手表、手机、电脑上显示作用的钟就是由它演变过来的。很奇妙吧!

下载电路

STM32有BOOT0和BOOT1两个引脚,这两个引脚的高低电平控制STM32单片机的启动模式。

在STM32F1里,可以通过BOOT[1:0] 引脚选择三种不同启动模式。一般情况下如果我们想用串口下载代码,则必须配置 BOOT0为 1,BOOT1为 0,而如果想让 STM32 按下复位键就开始跑代码,则需要配置 BOOT0 为 0, BOOT1 随便设置都可以。

STM32入门系列-STM32最小系统介绍的更多相关文章

  1. STM32入门系列-STM32时钟系统,时钟使能配置函数

    之前的推文中说到,当使用一个外设时,必须先使能它的时钟.怎么通过库函数使能时钟呢?如需了解寄存器配置时钟,可以参考<STM32F10x中文参考手册>"复位和时钟控制(RCC)&q ...

  2. STM32入门系列-STM32时钟系统,自定义系统时钟

    在时钟树的讲解中我们知道,通过修改PLLMUL中的倍系数值(2-16)可以改变系统的时钟频率.在库函数中也有对时钟倍频因子配置的函数,如下: void RCC_PLLConfig(uint32_t R ...

  3. STM32入门系列-STM32时钟系统,STM32时钟树

    时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...

  4. STM32入门系列-STM32时钟系统,时钟初始化配置函数

    在前面推文的介绍中,我们知道STM32系统复位后首先进入SystemInit函数进行时钟的设置,然后进入主函数main.那么我们就来看下SystemInit()函数到底做了哪些操作,首先打开我们前面使 ...

  5. STM32入门系列-STM32外设地址映射

    片上外设区分为四条总线,根据外设速度的不同,不同总线挂载着不同的外设,APB1挂载低速外设,APB2和AHB挂载高速外设.相应总线的最低地址我们称为该总线的基地址,总线基地址也是挂载在该总线上的首个外 ...

  6. STM32入门系列-学习STM32要掌握的内容

    STM32芯片架构 STM32F103系列芯片的系统架构如下: STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令).S(系统).D(数据)三条信号 ...

  7. STM32入门系列-启动文件介绍

    在启动文件内部使用的都是汇编语言,这个文件的作用是负责执行微控制器从"复位"到"开始执行 main 函数"中间这段启动时间所必须进行的工作.它完成的具体工作有: ...

  8. STM32入门系列-存储器与寄存器介绍

    介绍两部分内容: 什么是存储器映射 什么是寄存器及寄存器映射 为了让大家对存储器与寄存器有一个更清楚的认识,并且为之后使用 C 语言来访问 STM32 寄存器内容打下基础.等明白了如何使用 C 语言封 ...

  9. STM32入门系列-开发工具keil5安装

    主要介绍如下三部分内容: keil5软件获取 keil5安装 安装STM32芯片包 软件获取 可以通过搜索引擎搜索关键字"KEIL5下载",找到其官方网站www.keil.com. ...

随机推荐

  1. 从GitHub建站迁移到服务器(Java环境)

    一.购买域名和服务器 域名:阿里云:lookabc.cn 服务器:腾讯云,学生价格便宜 二.域名解析 注意:由于域名和服务器不在同一家,需要域名迁入和迁出 三.搭建服务器环境 1.下载xftp6和xs ...

  2. Cesium系统学习整理(一)

    (一)Cesium的概念定义 Cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎.Cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区域,并提供良好的 ...

  3. Oracle12c 使用总结

    /*创建临时表空间 */create temporary tablespace BBB tempfile 'D:\APP\oracle\oradata\orcl\BBB.dbf' size 500m ...

  4. win10 配置 maven | 下载与配置

    <!-- 阿里云仓库 --> <mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf&g ...

  5. Vue 组件的基础介绍

    1.组件定义 1.定义组件并引用 2.父组件向子组件传值 3.子组件向父组件传值 # 组件间传值:vuex (https://www.cnblogs.com/xiaonq/p/9697921.html ...

  6. Python-为元组中每个元素命名

    学生信息系统: (名字,年龄,性别,邮箱地址) 为了减少存储开支,每个学生的信息都以一个元组形式存放 如: ('tom', 18,'male','tom@qq.com' ) ('jom', 18,'m ...

  7. C++系列教程

    C++系列教程: 本人是一个高二狗C++小白,之前徘徊在Python和易语言等一些语言之间,这是我几天学习收获的结果,该教程是我自己搜集整理,再加上自己对C++的理解编写的,也是一个偏经验类型的,希望 ...

  8. Linux I2C驱动框架

    Linux的I2C体系结构分为3个组成部分: I2C核心(  i2c-core.c ): I2C核心提供了I2C总线驱动和设备驱动的注册.注销方法.I2C通信方法("algorithm&qu ...

  9. 第五周:面向对象部分内容总结(5)---java设计规则

    面向对象设计原则 1.开闭原则 开闭原则理解: 简单说就是一个软件实体支持扩展,不支持修改.就是在不改变源码的基础上,扩展其它的功能. 其实笔者认为,开闭原则无非就是想表达这样一层意思:用抽象构建框架 ...

  10. Struts2 学习记录-第一天

    Struts2 -01 struts2框架认识 struts2框架是web层框架.struts2框架=webwork+strut1框架发展过来的.struts2框架设计主要用到技术:通过过滤器进行请求 ...