单片机复位按键电路、唤醒按键电路

news2024/11/18 13:38:21

目录

单片机复位按键

外部手动复位

单片机复位按键电路

复位按键电路1

复位按键电路2

单片机唤醒按键

 单片机唤醒按键电路


单片机复位按键

单片机复位:简单来说,复位引脚就是有复位信号,就是从头开始执行程序

本质:就是靠充放电产生一个复位脉冲

复位方式:共有三种类型的复位,分别为系统复位、电源复位和备份域复位。

数据手册关于复位的描述如下。

接下来主要讲解外部手动复位

外部手动复位

外部复位电路是嵌入式系统中的一项核心功能。这种电路通常是由一个或多个基于电容电压的电路组成的,其中一个常见的例子是用电容电路组成的手动复位按键。该按键的目的是为了让用户可以手动地复位系统,从而使系统回到初始状态。

一、手动复位按键的工作原理

手动复位按键是通过连接到系统电源和复位线之间的一个电容来工作的。当按下按键时,电容开始充电,同时将电容器的电压传递到外部复位线上,导致系统重新启动。这个复位信号会告诉系统把所有的寄存器清零并跳转到程序的初始状态。

手动复位按键的电容的作用在于,对按键输入的电信号进行滤波,以确保信号的稳定性和准确性。当按键被按下时,电容电路会因为短路而产生一个瞬时电流,导致电压上升。这将会产生一个较大的噪声脉冲,可能会干扰其它设备的正常工作。因此,我们需要借助电容电路将这个瞬时信号滤除,确保转换的信号是准确稳定的。

二、STM32单片机中的手动复位电路

STM32单片机的手动复位电路由一个复位线和一个电容组成。电容通常被连接到复位线上,以便可以使用它来手动地复位单片机。当按下手动复位按键时,电容器开始充电,并将电容器的电压传递到外部复位线上。然后,STM32单片机将自动开始复位和重新启动。

在STM32单片机中,手动复位按键出的电容还有一个重要的作用,就是防止系统因为错误的复位而导致的崩溃。例如,若系统因为电源故障而突然断电,当电源恢复时,STM32单片机会自动重新启动和运行。然而,如果此时系统中仍然有未完全复位或未清零的寄存器或计数器等结构的话,系统会处于不稳定的状态,极有可能导致程序异常终止或死循环等问题。这时候,手动复位按键就可以被用来解决这个问题。按下手动复位按键会将寄存器清零并强制系统复位,这样系统就可以重新启动并且处于初始状态。

三、手动复位按键的优点

手动复位按键出电容作为系统复位电路的一部分,具有多种使用优点,包括:

1.安全稳定:手动复位电路可以有效地提供系统安全性,保护电子设备免受突然断电或电源故障等不受控的情况的影响,确保设备的可靠性,稳定性和安全性。

2. 可控性:手动复位按键是一个人为控制的手段,操作者可以将系统复位,从而实现对设备的有效性和正确性的可控性。

3. 可靠性:手动复位按键出的电容滤波电路,可以有效地过滤掉可能导致系统干扰的电磁波等干扰信号,从而提高系统的可靠性。

四、手动复位按键的应用场景

手动复位按键可以用于多种电子设备中,如数字式仪表,PLC,手机电池,工业控制系统等等。其中最主要的应用是在嵌入式系统中,特别是在STM32单片机中。STM32单片机使用手动复位按键的主要场景如下:

1.当需要对系统进行重置,或清除从存储器芯片或信号发生器接收到的无规律数据时,手动复位按键可以非常方便地实现此操作,并帮助恢复系统的正常状态。

2.当符合特定条件的宏被激活时,该设置可以使手动复位按键也可以用于动态校准设备。例如在测试中,当数据完全聚集后,可以通过按下手动复位按键以对某些传感器的数据进行校准调整。

3.当需要进行系统调试时,手动复位按键可充当可读写存储器的控制信号,从而使得系统完成特殊的工作。

4.当进行系统的调试和开发时,手动复位按键可以用于跳转到程序的起始位置,以便在磁盘或程序出现时对其进行调试。

手动复位按键出电容是嵌入式系统中的重要部分之一。它的作用不仅仅是用于手动复位,也是保证系统操作的正确性和有效性的关键因素,让系统的复位过程更加稳定,可靠和安全。此外,在开发过程中,手动复位按键可以作为一种非常有用的开发调试工具,提供了一种非常方便的方法,以便在这样的系统中解决极具挑战的问题。在如此多的应用中,手动复位按键是一个值得花费时间来学习和尝试的重要部分。

单片机复位按键电路

复位按键电路1

如上图,R17 C13组成止电复位电路,刚上电时,C13是电压为0,电源通过R17对电容充电,因此,RST引脚呈现高电平,高电平时间大于2个晶振周期,单片机复位。

电容充电完毕,RST引脚呈现低电平,复位结束。

按钮S22和R16组成手动复位电路 ,按下S22,电源接通R16和 R17,由于R17阻值比较大,因此RST是高电平,同时电容通过R16迅速放电,即使按钮触点断开,电源也可对C13充电,使RST高电平稳定一段时间 ,保证可靠复位。C13容量较小时,R16可省掉,小电容短路放电不会损坏按钮触点。

复位按键电路2

上电复位原理接上电源瞬间,电容C7等效于短路,此时NRST点为低电位接地,STM32复位。当电容充电完成后,电容C1等效于开路NRST点电位回升为高电平。

按键复位原理按下按键KEY1,NRST点接地变为低电平,STM32复位。按键松开后,NRST点回升为高电平。

单片机唤醒按键

数据手册(stm32f4xx)中与唤醒按键相关的内容如下

WKUP 引脚上升沿时唤醒待机状态。

位8 EWUP的作用:

- 当将位8 EWUP设置为1时,WKUP引脚被配置为唤醒器件的输入。WKUP引脚在出现上升沿时可以从待机模式唤醒系统。
  
- 当将位8 EWUP设置为0时,WKUP引脚将用作通用I/O,而不会用于唤醒待机模式下的系统。

此外,位8 EWUP可以通过软件设置为1或清零,表示这个配置可以由软件控制。另外,通过系统复位可以将该位复位,恢复为默认值。

通常用于电源管理功能,以便控制设备在待机状态下的唤醒方式。这种设置通常允许开发人员根据实际需求对设备的唤醒方式进行灵活配置。

 单片机唤醒按键电路

通过松开唤醒按键后,保证单片机处于待机状态。

当按下唤醒按键时,WKUP引脚被拉高电平,单片机会被唤醒并进入工作状态。

在按键松开后,松开电路会确保WKUP引脚被拉低电平(通俗理解就是:SW7与电容C49形成断路,没有电流通过,WKUP引脚此时接电源地,WKUP引脚被拉低电平),单片机重新进入待机模式。

阻容滤波电路能够过滤掉WKUP引脚的干扰信号,保证其稳定性。

下拉电阻:为了保证唤醒时的低电平稳定,需要在WKUP引脚和GND之间加入适当的下拉电阻。

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

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

相关文章

Linux内核适配 (一)

我们的产品包含多个内核驱动模块,随着Linux内核的不断演进,既有的驱动代码可能因为使用了一些被新版本内核所废弃的函数或者数据结构,导致不能编译通过,或者运行时出错。这时,我们就需要修改我们的驱动代码,以便其能在新版本的内核上正常工作,这个过程通常被称为「适配」…

【机器学习】线性回归模型(Linear Regression)

🌸博主主页:釉色清风🌸文章专栏:机器学习🌸今日语录:温柔的一半是知识,没有知识的涵养撑不起你想要的风骨。 ☘️0文章预览 本系列文章主要是根据吴恩达老师的机器学习课程以及自己的理解整合而成&#xf…

【GO开发工程师】grpc进阶#golang

【GO开发工程师】grpc进阶#golang 推荐个人主页:席万里的个人空间 文章目录 【GO开发工程师】grpc进阶#golang1、protobuf2、grpc2.1、gRPC 的 Metadata机制2.2、grpc拦截器 1、protobuf syntax "proto3"; // 指定使用的 protobuf 版本为 proto3 import…

react-JSX基本使用

1.目标 能够知道什么是JSX 能够使用JSX创建React元素 能够在JSX中使用JS表达式 能够使用JSX的条件渲染和列表渲染 能够给JSX添加样式 2.目录 JSX的基本使用 JSX中使用JS表达式 JSX的条件渲染 JSX的列表渲染 JSX的样式处理 3.JSX的基本使用 3.1 createElement()的问题 A. …

基于Springboot的计算机知识竞赛网站(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的计算机知识竞赛网站(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结…

Python学习 day05(异常、模块导入、包)

异常 为什么要捕获异常 当程序遇到了BUG,如果不对BUG进行手动捕获,那么整个程序就会因为一个BUG而停止运行,这在有些情况下是会造成很大的损失,但是如果我们进行了手动捕获,那么整个程序会继续运行捕获异常的作用在于&…

ubantu与windows文件传输(filezilla)

ubantu与windows文件传输(filezilla) windowsubantu20.04Fliezilla windows 到官网下载filezilla:https://www.filezilla.cn/,并安装。 ubantu20.04 1、安装vim sudo apt-get install vim2、安装FTP服务 sudo apt-get instal…

【机器人最短路径规划问题(栅格地图)】基于遗传算法求解

基于遗传算法求解机器人最短路径规划问题(栅格地图)的仿真结果 仿真结果: 路径长度的变化曲线: 遗传算法优化后的机器人避障路径:

Python入门学习:if语句与条件控制--and、or、in、not in详解与实践

Python入门学习:if语句与条件控制–and、or、in、not in详解与实践 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1…

[AIGC] JDK17中的Record类介绍

文章目录 什么是Record类Record类的特点Record类实践 我们都知道,从Java 14开始, JEP 359 推出了一个新的类型声明Record,Record 类型用来模拟不可变的数据结构,它能产生一个类包含一定数量的只读字段。 什么是Record类 在JDK14中引入了一…

jetson nano——编译安装PySide2

目录 1.打开我提供的文件or官网自己下载(需对应PyQt5的版本)2.解压文件3.进入目录4.安装clang5. 编译安装6.报错: error: ‘NPY_ARRAY_UPDATEIFCOPY’ was not declared in this scope7.又报错:error: ‘NPY_ARRAY_UPDATEIFCOPY’ was not de…

Yapi部署

【GO开发工程师】Yapi部署 推荐个人主页:席万里的个人空间 文章目录 【GO开发工程师】Yapi部署1、Yapi部署 1、Yapi部署 初始化yapi: git clone https://github.com/Ryan-Miao/docker-yapi.git cd docker-yapi docker-compose upyapi启动失败 1.cd进入…

MySQL里的两个“二次”

文章中所有图片均来自网络 一、double write 第一个二次是mysql一个崩溃恢复很重要的特性-重复写入。 doublewrite缓冲区是位于系统表空间中的存储区域,在该区域中,InnoDB会在将页面写入数据文件中的适当位置之前,从InnoDB缓冲池中刷新这些页…

海量物理刚体 高性能物理引擎Unity Physics和Havok Physics的简单性能对比

之前的博客中我们为了绕过ECS架构,相当于单独用Batch Renderer Group实现了一个精简版的Entities Graphics,又使用Jobs版RVO2实现了10w人同屏避障移动。 万人同屏对抗割草 性能测试 PC 手机端 性能表现 弹幕游戏 海量单位同屏渲染 锁敌 避障 非ECS 那么有…

dolphinscheduler海豚调度(三)SQL任务

在之前的博文中,我们已经介绍了DolphinScheduler海豚调度的基本概念和模块,安装部署和元数据切换,以及Shell任务的实践。今天,让我们来深入探讨DolphinScheduler中另一种常见的任务类型:SQL任务。 SQL任务是DolphinSc…

嵌入式学习 Day 26

数组指针和指针数组 (题外话) 数组指针:数组指针是一种指针,它指向一个数组的首地址。在C语言中,数组名本身就是一个指向数组首地址的指针,因此数组名可以被赋值给指针变量&#xff0c…

07 Qt自绘组件:图片预览小组件ImageViewer

系列文章目录 01 Qt自定义风格控件的基本原则-CSDN博客 02 从QLabel聊起:自定义控件扩展-图片控件-CSDN博客 03 从QLabel聊起:自定义控件扩展-文本控件-CSDN博客 04 自定义Button组件:令人抓狂的QToolButton文本图标居中问题-CSDN博客 0…

使用Jenkins部署前端Vue项目和后端Java服务

Jenkins安装相关插件,供后续使用(Dashboard - Manage Jenkins - Plugins) Maven Integration plugin https://plugins.jenkins.io/maven-plugin CloudBees Docker Build and Publish pluginhttps://plugins.jenkins.io/docker-build-publish…

Unity中的UI系统之GUI

目录 概述工作原理和主要作用基础控件重要参数及文本和按钮多选框和单选框输入框和拖动条图片绘制和框 复合控件工具栏和选择网络滚动视图和分组窗口 自定义整体样式自定义皮肤样式 概述 什么是UI系统 UI是User Interface(用户界面)的简称,用…

【pytorch】函数记录

你好你好! 以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 torch.sum()torch.argmax()torch.nn.Parametertorch.unbindtorch.optim.Adam()[^adam]torch.cattorch.unsqueeze()torch.normalize()[^l2]torch.eyetorch.mmto…