STM32入门系列-STM32最小系统介绍
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最小系统介绍的更多相关文章
- STM32入门系列-STM32时钟系统,时钟使能配置函数
之前的推文中说到,当使用一个外设时,必须先使能它的时钟.怎么通过库函数使能时钟呢?如需了解寄存器配置时钟,可以参考<STM32F10x中文参考手册>"复位和时钟控制(RCC)&q ...
- STM32入门系列-STM32时钟系统,自定义系统时钟
在时钟树的讲解中我们知道,通过修改PLLMUL中的倍系数值(2-16)可以改变系统的时钟频率.在库函数中也有对时钟倍频因子配置的函数,如下: void RCC_PLLConfig(uint32_t R ...
- STM32入门系列-STM32时钟系统,STM32时钟树
时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...
- STM32入门系列-STM32时钟系统,时钟初始化配置函数
在前面推文的介绍中,我们知道STM32系统复位后首先进入SystemInit函数进行时钟的设置,然后进入主函数main.那么我们就来看下SystemInit()函数到底做了哪些操作,首先打开我们前面使 ...
- STM32入门系列-STM32外设地址映射
片上外设区分为四条总线,根据外设速度的不同,不同总线挂载着不同的外设,APB1挂载低速外设,APB2和AHB挂载高速外设.相应总线的最低地址我们称为该总线的基地址,总线基地址也是挂载在该总线上的首个外 ...
- STM32入门系列-学习STM32要掌握的内容
STM32芯片架构 STM32F103系列芯片的系统架构如下: STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令).S(系统).D(数据)三条信号 ...
- STM32入门系列-启动文件介绍
在启动文件内部使用的都是汇编语言,这个文件的作用是负责执行微控制器从"复位"到"开始执行 main 函数"中间这段启动时间所必须进行的工作.它完成的具体工作有: ...
- STM32入门系列-存储器与寄存器介绍
介绍两部分内容: 什么是存储器映射 什么是寄存器及寄存器映射 为了让大家对存储器与寄存器有一个更清楚的认识,并且为之后使用 C 语言来访问 STM32 寄存器内容打下基础.等明白了如何使用 C 语言封 ...
- STM32入门系列-开发工具keil5安装
主要介绍如下三部分内容: keil5软件获取 keil5安装 安装STM32芯片包 软件获取 可以通过搜索引擎搜索关键字"KEIL5下载",找到其官方网站www.keil.com. ...
随机推荐
- 微信小程序结合微信公众号进行消息发送
微信小程序结合微信公众号进行消息发送 由于小程序的模板消息已经废弃了,官方让使用订阅消息功能.而订阅消息的使用限制比较大,用户必须得订阅.需要获取用户同意接收消息的权限.用户必须得和小程序有交互的时候 ...
- C++实现职工管理系统(中)
C++实现职工管理系统(中) 大家好,今天是在博客园的第九天,博主今天给大家带来的是职工管理系统(C++)(中) 这次的随笔记录是实现(上)结语处说的几个功能 目录 C++实现职工管理系统(中) 1. ...
- React手稿之State Hooks of Hooks
React Hooks React在16.7.0-alpha.0版本中提到了Hooks的概念,目前还是Proposal阶段. 官方也陈述,接下来的90%的工作会投入到React Hooks中. 从目前 ...
- Python-信号量和线程池-semaphore ThreadPollExector
信号量 其实本质上是锁,Lock是单锁,信号量是指定多把锁,也就是说通过信号量指定多个数线程可以访问相同资源,一般情况下读操作可以有多个,但写操作同时只有一个 信号量模块 semaphore # 使用 ...
- 类名@6d5037a9(地址)
问题: 输出的结果不正确 应出现结果 解决问题方法 在@Autowired注入的@Value中缺少toString方法 @Override public String toString() { ret ...
- BeautifulSoup使用手册(查询篇)
目录 开始使用呢 解析器 四种对象 tag对象 标签名(name) 属性值(Attributes) 多值属性 内容 Comment对象 prettify()方法 find_all方法 contents ...
- C++系列教程
C++系列教程: 本人是一个高二狗C++小白,之前徘徊在Python和易语言等一些语言之间,这是我几天学习收获的结果,该教程是我自己搜集整理,再加上自己对C++的理解编写的,也是一个偏经验类型的,希望 ...
- CentOS 7安装Nginx 1.10.2
安装epel-release源并进行安装 yum install epel-release yum update(时间会有点长) yum install nginx 相关操作: systemctl s ...
- OpenCV中threshold函数的使用
转自:https://blog.csdn.net/u012566751/article/details/77046445 一篇很好的介绍threshold文章: 图像的二值化就是将图像上的像素点的灰度 ...
- devops-jenkins分布式构建
1. devops-jenkins分布式构建 1) 点击系统管理 进入节点管理 2) 点击新建节点 3) 进行节点配置在node节点服务器配置,进行java的安装 [root@nginx-backup ...