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

目录

单片机复位按键

外部手动复位

单片机复位按键电路

复位按键电路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之间加入适当的下拉电阻。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源大模型LLM大爆发,数据竞赛已开启!如何使用FuseLLM实现大语言模型的知识融合?

开源大模型LLM大爆发,数据竞赛已开启!如何使用FuseLLM实现大语言模型的知识融合? 现在大多数人都知道LLM是什么,以及可以做什么。 人们讨论着它的优缺点,畅想着它的未来, 向往着真正的AGI,又有…

NOIP 2008 普及组初赛试题及解析

NOIP 2008 普及组初赛试题及解析 一. 单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案.)。二. 问题求解(共2题,每题5分,共计10分)三. 阅读程序写结果(…

【JavaScript】手写 Promise(Promise\A+测试)

手写Promise-Promise\A测试 接下来咱们来测试一下手写Promise的代码能否通过Promise\A测试 Promise\A规范: Promise\A是社区推出的规范,其实最早Promise也是社区推出并实现的,旨在规范Promise的实现,里面约定了: 状态必须是:pending,fulfilled,rejectedthen方法的详细实现细…

ElasticSearch之suggester API

写在前面 当我们在使用搜索引擎进行的查询到时候,如果是输入错误的话,搜索引擎会给出一些搜索建议,如下: 在es中也提供了类似的功能,叫做suggester API。 1:原理和种类 原理是将查询的信息分为很多个词…

微服务Springcloud智慧工地APP源码 AI人工智能识别 支持多工地使用

目录 一、现状描述 二、行业难点 APP端功能 一、项目人员 二、视频监控 三、危大工程 四、绿色施工 五、安全隐患 AI智能识别 环境监测 实名制管理 智慧监测 智慧工地全套解决方案 一、现状描述 建筑工程建设具有明显的生产规模大宗性与生产场所固定性的特点。建…

Springboot+vue图书管理系统(小白)

图书管理系统 简介:一个最简约的图书管理系统,适用于小白用来练手 前端:VueElementUIechars 后端:SpringbootMybatisMySQL 功能模块: 信息管理:公告信息 操作日志 用户管理:用户信息 图书…

【NTN 卫星通信】基于NTN和TN的Inter-PLMN海事应用场景

1 场景概述 NTN和TN联合组网的场景,可以有多种应用方式,以下用例描述了同时使用多个卫星PLMN和一个地面5G PLMN的海事场景。 MNO-G是一家成熟的卫星PLMN运营商,运营着几颗GEO卫星。MNO-L是一个相对较新的卫星PLMN运营商,操作LEO卫…

Android布局优化之include、merge、ViewStub的使用,零基础入门android

面试了一位工作12年的程序员, 这位老哥有3年java开发经验,2年H5,7年Android开发经验,简历上写着精通Java,Android,熟悉H5开发。没有具体的技术点。 说实话我很期待这位老哥的面试,于是让人事邀…

STM32 Cubemx配置SPI编程(使用Flash模块)

文章目录 前言一、W25Q64模块介绍二、STM32Cubemx配置SPI三、SPI HAL库操作函数分析3.1查询方式3.2中断方式 四、Flash时序分析1.读器件ID指令2.写使能3.擦除扇区4.页编程5.读数据6.读状态寄存器 五、Flash驱动程序编写1.代码编写测试 总结 前言 本篇文章来为大家讲解一下Flas…

华为云项目部署

前端部署 将dist文件夹下的内容拷贝到/usr/local/nginx/html下 #启动脚本是在 # /usr/local/nginx/sbin/nginx #启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #停止 /usr/local/nginx/sbin/nginx -s stop #重载 /usr/local/nginx/sbin/nginx -s rel…

【基于React实现共享单车管理系统】—项目简介(一)

【基于React实现共享单车管理系统】—项目简介(一) 一、项目整体架构

springboot227旅游管理系统

springboot旅游管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游管理系统就是在这样的大环境下诞生,其可以帮助使用者在…

结合CMD文件,将变量写到ROM和Falsh中

结合CMD文件,将变量写到ROM和Falsh中 RAM是一种易失性存储器,它用于临时存储计算机程序和数据。当计算机关闭或断电时,RAM中的数据将丢失。RAM具有很快的读写速度,但容量有限。 Flash是一种非易失性存储器,它可以长期存储数据而不会丢失。Flash存储器通常用于存储操作系统…

K8S部署postgresql

(作者:陈玓玏) 一、前置条件 已部署k8s,服务端版本为1.21.14 二、部署postgresql 拉取镜像,docker pull postgres,不指定版本,自动从docker hub拉取最新版本;配置configmap&…

Redis的高性能之道

前言:做码农这么多年,我也读过很多开源软件或者框架的源码,在我看来,Redis是我看过写得最优美、最像一件艺术品的软件,正如Redis之父自己说的那样,他宁愿以一个糟糕的艺术家身份而不是一名好程序员被别人记…

每日OJ题_牛客DD1 连续最大和(IO型OJ)

目录 牛客DD1 连续最大和 解析代码 牛客DD1 连续最大和 连续最大和_牛客题霸_牛客网 解析代码 #include <climits> #include <iostream> #include <vector> using namespace std; int main() {int n 0;cin >> n;vector<int> arr(n);for (in…

TypeScript学习

TypeScript 是一种基于 JavaScript 构建的强类型编程语言。 ts不是js的替代只是为了大型项目更好的扩展&#xff0c;微软编写的一个强类型的脚本。 ts中对参数&#xff0c;变量&#xff0c;返回值 都有限制&#xff0c;不像js那么随意&#xff0c;类的定义也更严格&#xff0…

vscode右键菜单栏功能说明

本文主要介绍在vscode中的python代码文件中&#xff0c;单击鼠标右键出现的菜单栏功能。部分功能可能与安装插件相关&#xff0c;主要用于个人查阅。 单击右键菜单栏如下&#xff1a; GO to xx类型命令 “Go to Definition”、“Go to Declaration”、"Go to Type Defin…

数据结构(C语言)代码实现(十)——链队列循环队列

目录 参考资料 链队列的实现 LinkQueue.h LinkQueue.cpp 测试函数test.cpp 测试结果 循环队列的实现&#xff08;最小操作子集&#xff09; 完整代码 测试结果 参考资料 数据结构严蔚敏版 链队列的实现 LinkQueue.h #pragma once #include <cstdio> #incl…

springboot之jdbc、druid、mybatis

springboot整合jdbc spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.52.3:3306/mybatis?useUnicodetrue&characterEncodingutf-8&serverTimezoneUTCusername: rootpassword: root<?xml version"1.0" encodi…