【基础篇】1.2 认识STM32(二)

news2024/11/26 11:33:04

3.3 VREF+/VREF-引脚

VREF+和VREF-是STM32中用于提供参考电压的引脚。如下图:

VREF+引脚可以连接一个单独的外部参考电压,范围在2.0V~VDDA,但不能超过VDDA,否则就超过了模拟器件的最大供电电压。在100引脚的封装中,VREF-是A/D的参考,当需要使用时,必须绑定到VSSA(使得所有模拟器件的参考都相对于VSSA)。

VREF-引脚是参考电压输入引脚负极。在64及更少的引脚中,VREF-和VREF+是不可用的,在内部被接到一个ADC电压提供源(VDDA)并接地(VSSA),此时参考电压就是AD的工作电压了。

 3.4 VBAT引脚

VBAT在电路中代表电池工作模式专用引脚。它主要用作给内部RTC(实时时钟)供电,在主要电源(VDD)掉电的情况下,可以确保RTC的内部工作,通常采用钮扣式电池。在不需要使用RTC的情况下,VBAT引脚可以和VDD引脚接在一起。

3.5 NRST引脚

NRST引脚是STM32F的异步复位脚。当NRST输入低电平的时候,MCU处于复位状态,重设所有的内部寄存器,及片内几十KB的SRAM。当NRST从低电平变高时,PC指针从0地址开始。但是复位的回时候不会将STM32F片内RTC的寄存器以及后备存储器重置,因为它们是用电池通过专门的VBAT脚供电。

3.6 BOOT0/BOOT1引脚

BOOT0和BOOT1是STM32微控制器的两个重要引脚,它们在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。

  1. BOOT0:这是一个普通输入/输出引脚,用于配置芯片的启动模式。当BOOT0引脚为低电平时,芯片将从Flash存储器中启动;当BOOT0引脚为高电平时,芯片将从系统引导加载器(System Bootloader)或其他外部存储器(如ROM或RAM)中启动(取决于芯片的配置)。
  2. BOOT1:这也是一个普通输入/输出引脚,用于定义额外的启动模式。

需要注意的是,一般不使用内置SRAM启动(BOOT1=1 BOOT0=1),因为SRAM掉电后数据就丢失。多数情况下,SRAM只是在调试时使用,也可以做其他一些用途。在ISP下载的情况下,BOOT0=1,BOOT1=0 ,下载完成后,把BOOT0的跳线接回0,也即BOOT0=0,BOOT1=0 。

3.7晶振引脚

说到晶振引脚之前,我们先聊聊什么是晶振。

通常情况下,对于一些成熟的STM32开发板,在其电路原理图的设计中,MCU外接了两个晶振。一个是低速晶振 ,另一个是高速晶振。

而晶振是一种用于产生稳定时钟信号的电子元件,通常由石英晶体制成。晶振的作用是提供一个基准时钟信号,用于同步和控制微控制器、计算机、通信设备等数字系统的操作。晶振的稳定性、精度和频率范围对于数字系统的性能和稳定性至关重要。晶振广泛应用于各种电子设备中,如计算机主板、嵌入式系统、通信设备、计时器、电子钟表等。

晶振的基本工作原理是利用石英晶体的压电效应来产生高频振动。当在石英晶体上施加交变电场时,晶体将会产生机械变形,这种变形会导致晶体内部离子的移动并形成一个稳定的振荡。这个振荡的频率取决于晶体的物理特性,如尺寸、形状和材料等。通过控制交变电场的频率和幅度,可以精确地控制晶体的振荡频率,从而得到所需的时钟信号。

上面说到MCU会外接晶振,为什么是外接呢?

晶振通常是外接而不是封装到IC内部,这主要是因为实用性和成本的问题。早些年,芯片的生产制作工艺也许还不能够将晶振做进芯片内部,但现在已经可以实现。然而,将晶振集成到芯片内部会增加成本,并且一旦晶振封装进芯片内部,其频率也就固定了,无法再更换。相比之下,将晶振作为外部元件,可以根据需要自由地更换晶振来给芯片提供不同的频率。此外,晶振和芯片的材料是不同的,芯片(集成电路)的材料是硅,而晶体则是石英(二氧化硅),无法直接做在一起,但可以封装在一起,只是成本会比较高。因此,从实用性和成本的角度考虑,晶振通常是作为外部元件连接在芯片上,而不是封装到IC内部。

那么mcu又为什么需要外接两个晶振呢?

MCU需要一个高速晶振和一个低速晶振的原因在于它们各自的作用和优势。

首先,外部高速晶振是一种用于提供高精度时钟信号的晶振,它通常用于微处理器和微控制器的时钟输入。由于外部高速晶振的精度较高,因此可以保证系统时序的准确性,从而提高系统的稳定性和可靠性。与此同时,外部高速晶振还能够提供更高的时钟频率,使处理器的工作速度更快。因此,外部高速晶振是很多电子设备中必不可少的一个组成部分。

其次,低速晶振则是一种用于提供低精度时钟信号的晶振,它通常用于计时器、时钟、闹钟等电路中。虽然低速晶振的精度较低,不能用于要求高精度时序的电路,但在一些要求低功耗的电路中,低速晶振是一个比较好的选择。因为低速晶振的频率较低,所以在工作时需要的能量也相应较少,从而能够实现更低的功耗。

综上所述,MCU需要一个高速晶振和一个低速晶振是因为高速晶振可以提供高精度、高频率的时钟信号,提高系统性能和稳定性;而低速晶振则可以在低功耗电路中发挥作用,减少能量消耗。

3.7.1 高速晶振电路(OSC_IN/OSC_OUT)

OSC_IN和OSC_OUT是STM32单片机上的外部时钟输入和输出引脚。它们主要用于接入外部晶振,为系统提供时钟源。

  1. OSC_IN引脚:通常用来连接外部振荡器或晶振的输入端,以获取稳定的时钟信号。这个信号可以是任何频率的时钟源,但需要与单片机的工作频率相匹配。
  2. OSC_OUT引脚:是单片机内部的时钟输出引脚,它可以将单片机内部产生的时钟信号输出到其他器件或系统中。这个时钟信号的频率和相位可以根据需要进行调整。

总之,OSC_IN和OSC_OUT引脚是STM32单片机中非常重要的时钟引脚,它们为单片机提供了稳定的时钟信号,从而保证了系统的正常运行。

3.7.2 低速晶振电路(OSC_IN32/SOC_OUT32)

OSC_IN32和OSC_OUT32引脚是微控制器或处理器上的时钟输入和输出引脚,用于与外部时钟源连接。

OSC_IN32是外部时钟输入引脚,用于接收来自外部时钟源的时钟信号。这个外部时钟源可以是一个晶体振荡器、陶瓷振荡器或其他类型的时钟发生器。通过连接外部时钟源到OSC_IN32引脚,微控制器可以从外部源获取时钟信号,并基于该信号进行工作。

OSC_OUT32是外部时钟输出引脚,用于将微控制器的内部时钟信号输出到外部设备。通过这个引脚,可以将微控制器的时钟信号传递给其他需要同步的电路或设备。例如,如果有一个外部模块需要与微控制器的时钟同步工作,可以通过连接OSC_OUT32引脚到该模块的时钟输入引脚来实现同步。

3.9 SWCLK/SWDIO引脚

SWCLK/SWDIO引脚是串行线调试(Serial Wire Debug,SWD)接口的两个引脚。SWD是一种用于微控制器调试和编程的串行通信协议。

  1. SWCLK(Serial Wire Clock):串行时钟线。它用于向目标设备发送时钟信号,控制数据传输的速度。SWCLK信号由调试器或编程器生成,用于同步与微控制器之间的通信。
  2. SWDIO(Serial Wire Data Input/Output):串行数据输入/输出线。它用于向目标设备发送或接收数据。当调试器或编程器需要与微控制器进行通信时,它通过SWDIO线发送命令和数据,并从SWDIO线接收响应和数据。

下载调试电路,具体如下

SWD接口的主要优势是它仅需要两个引脚(SWCLK和SWDIO),与使用传统的JTAG接口相比,可以节省引脚资源。此外,SWD接口还具有高速、可靠和低成本的特点,因此在许多微控制器应用中得到了广泛应用。

四,附录

前文中的电路图中出现了一些专有名词,这里简单介绍下:

  • 10K

10K电阻是一种电子元件,其电阻值为10000欧姆(Ω),也可以表示为10KΩ。它通常用于控制电流在电路中的流动,以调节电路中电流的大小和方向。该电阻可以采用硬质材料制成,以吸收热量并防止电路过热。

此外,10K电阻也常用于限制不同电路部件的电流,如电容器、变压器和电池等。它还可以用来抑制电路中的空载损耗,减少电路中的干扰。在电力系统和电子电路中,10K电阻的应用非常广泛。

  • GND

GND是电线接地端的简写,代表地线或0线。这个地并不是真正意义上的地,是出于应用而假设的一个地,对于电源来说,它就是一个电源的负极。电路图上和电路板上的GND(Ground)代表地线或0线,GND就是公共端的意思

  • D1、D2

D1和D2可能是二极管或LED等电子元件的标识符。这些元件在电路中通常用于控制电流的方向或作为指示灯。

  • C7

C7是一个电容器的标识符。电容器在电路中用于储存电荷,并在需要时释放电荷,以平滑电路中的电压波动或滤除噪声。

  • R5、R6、R7

R5、R6和R7的标识符表示在电路图中存在三个不同的电阻器。每个电阻器都可能有特定的阻值和其他参数,这些参数会影响电路的性能和功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1320920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据可视化---双Y轴折线图比较

内容导航 类别内容导航机器学习机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归机器学习算法—聚类机器学习算法—异常检测机器学习算法—时间序列数据可视化数据可视化—折线图数据可视化—箱线图数据可视化—柱状图数据可视化—饼图、环形图、雷达图统…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十五:基础数据模块相关功能实现

一、本章内容 本章使用已实现的公共组件实现系统管理中的基础数据中的验证码管理、消息管理等功能。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 3.1 B站视频地址: 基于VUE3+Layui从头搭建通用后台管理系统合集-验证码功能实现 3.2 西瓜…

视频推拉流EasyDSS互联网直播/点播平台构建户外无人机航拍直播解决方案

一、背景分析 近几年,国内无人机市场随着航拍等业务走进大众,出现爆发式增长。无人机除了在民用方面的应用越来越多,在其他领域也已经开始广泛应用,比如公共安全、应急搜救、农林、环保、交通 、通信、气象、影视航拍等。无人机使…

Leetcode—746.使用最小花费爬楼梯【简单】

2023每日刷题&#xff08;六十一&#xff09; Leetcode—746.使用最小花费爬楼梯 算法思想 参考灵神 实现代码 class Solution { public:int minCostClimbingStairs(vector<int>& cost) {int n cost.size();vector<int> f(n 1);for(int i 2; i < n;…

DY某音视频评论区采集 评论数据抓取

某音用户评论和ID的采集方法主要使用burpsuite火狐浏览器抓包分析请求接口 火狐浏览器设置走代理模式&#xff1a;IP地址为本机127.0.0.1 端口8080 \/&#xff1a;jeomoo168 burpsuite->代理->HTTP历史记录那可以看到请求接口https://www.douyin.com/aweme/v1/web/com…

JDK bug:ciObjectFactory::create_new_metadata

文章目录 1、问题2.详细日志3.JDK&#xff1a;bug最终bug链接&#xff1a; 京东遇到过类似bug各位大佬如果有更详细的解答可以留言。 1、问题 Problematic frame: V [libjvm.so0x438067] ciObjectFactory::create_new_metadata(Metadata*)0x327 关键字还是ciObjectFactory::cr…

Ubuntu 18.04配置NFS服务器以及配置时遇到NFS问题

1.安装相关软件 sudo apt-get install nfs-kernel-server sudo apt-get install nfs-common 2.配置共享目录 2.1修改exports文件 sudo vi /etc/exports在最后添加如下并保存退出 /home/xiaowu/nfs 192.168.31*(rw,sync,no_root_squash,no_subtree_check) /home/xiaowu/nfs…

【论文阅读笔记】Pre-trained Universal Medical Image Transformer

Luo L, Chen X, Tang B, et al. Pre-trained Universal Medical Image Transformer[J]. arXiv preprint arXiv:2312.07630, 2023.【代码开源】 【论文概述】 本文介绍了一种名为“预训练通用医学图像变换器&#xff08;Pre-trained Universal Medical Image Transformer&…

nodejs+vue+微信小程序+python+PHP国漫推荐系统-计算机毕业设计推荐

使得本系统的设计实现具有可使用的价。做出一个实用性好的国漫推荐系统&#xff0c;使其能满足用户的需求&#xff0c;并可以让用户更方便快捷地国漫推荐。这个系统的设计主要包括系统页面的设计和方便用户互动的后端数据库&#xff0c;在开发后需要良好的数据处理能力、友好的…

ElementUI,修改el-select下拉框的样式

在使用到el-select组件中设置:popper-append-to-body“false” <el-selectv-model"value":popper-append-to-body"false"placeholder"请选择" ><el-optionv-for"item in options":key"item.value":label"ite…

农业物联网市场调研:2023年市场现状及发展机遇

近年来数字农业发展迅猛&#xff0c;不仅对我国农业经济快速发展产生了积极影响&#xff0c;而且已经成为全球发展最快的数字农业产业之一。数字农业未来的发展前景虽然非常富有吸引力。数字经济快速发展背景下&#xff0c;“数字农业”应运而生。 何谓农业物联网&#xff1f;农…

Android Studio设置android:background 属性背景颜色

除了默认的颜色之外都要自己添加。 添加颜色的操作步骤&#xff1a; 打开res文件夹&#xff0c;找values&#xff0c;里面有个colors.xml的文件。然后在里面定义一些颜色。 完成

持续集成交付CICD:Jenkins使用GitLab共享库实现前端项目镜像构建

目录 一、实验 1. GitLab修改项目文件与Harbor环境确认 2.Jenkins使用GitLab共享库实现前端项目镜像构建 3.优化CI流水线封装Harbor账户密码 4.Jenkins再次使用GitLab共享库实现前端项目镜像构建 一、实验 1. GitLab修改项目文件与Harbor环境确认 &#xff08;1&#xf…

Day64力扣打卡

打卡记录 方格取数&#xff08;线性DP&#xff09; import sys input sys.stdin.readline 输入样例&#xff1a; 8 2 3 13 2 6 6 3 5 7 4 4 14 5 2 21 5 6 4 6 3 15 7 2 14 0 0 0 输出样例&#xff1a; 67 n int(input()) w [[0] * (n 1) for _ in range(n 1)] while Tru…

三大主流前端框架介绍

在前端项目中&#xff0c;可以借助某些框架&#xff08;如React、Vue、Angular等&#xff09;来实现组件化开发&#xff0c;使代码更容易复用。此时&#xff0c;一个网页不再是由一个个独立的HTML、CSS和JavaScript文件组成&#xff0c;而是按照组件的思想将网页划分成一个个组…

Android-----AndroidManifests.xml 之meta-data

一、概念 meta-data&#xff1a;元数据、文件元数据。主要用来定义一些组件相关的配置值。 metadata是一组供父组件使用的名值对&#xff08;name-value pair&#xff09;&#xff0c;一个组件元素可以包含任意数量的meta-data子元素。这些子元素的值存放在一个 Bundle 对象中…

Qt-QTransform介绍与使用

QTransform是一个用于二维坐标系转换的类。我们知道Qt的坐标系是左上角为原点&#xff0c;x轴向右&#xff0c;y轴向下&#xff0c;屏幕上每个像素代表一个单位&#xff0c;那么&#xff0c;如果我们想要在屏幕上建立自己的坐标系用于绘制&#xff0c;就需要借助QTransform。 …

分布式链路追踪 —— 基于Dubbo的traceId追踪传递

文章目录 原文链接RpcContext 上下文对象Dubbo 过滤器&#xff08;Filter&#xff09;对象基于Dubbo的traceId追踪传递实现 原文链接 RpcContext 上下文对象 在实现 Dubbo 调用之间的链路跟踪之前&#xff0c;先简单了解 RpcContext 上下文对象和 Filter 过滤器对象&#xff…

Koa.js 入门手册:洋葱模型插件机制详解以及常用中间件

前言 Nodejs 提供了 http 能力&#xff0c;我们通过如下代码可以快速创建一个http server服务 const http require(http);http.createServer((req, res) > {res.write(hello\n);res.end();}).listen(3000);使用nodejs提供的原生能力启动一个http server并不麻烦&#xff…

详细教程 - 从零开发 Vue 鸿蒙harmonyOS应用 第六节(js版) ——模块化设计实现复杂页面

随着HarmonyOS生态的日渐完善,越来越多的厂商加入鸿蒙系统应用开发的行列。然而从其他系统转到鸿蒙开发,很多开发者还是需要一个适应的过程,特别是面对比较复杂的页面,应该如何合理进行模块化拆分是一个难点。 本文将通过一个实例,来分析如果采用模块化的方式实现一个包含丰富内…