嵌入式学习笔记(28)按键和CPU的中断系统

news2025/1/13 10:15:26

按键的物理特性

(1)、平时没人按的时候,弹簧把按键按钮弹开。此时内部断开的。

(2)、有人按下的时候,手的力量克服弹簧的弹力,将按钮按下,此时内部保持接通(闭合)状态;如果手拿开,则弹簧作用下按钮又弹开,同时内部又断开。

(3)、一般的按键都有4个引脚,这4个引脚成2对:其中一对是常开触点(像上面描述的不按则断开,按下则闭合);一对是常闭触点(平时不按时是闭合的,按下后是断开的)

按键的电学原理(结合原理图分析)

(1)硬件接法: SW5:GPH0_2 SW6:GPH0_3 SW78910:GPH2_0123

(2)按键的电路连接分析:平时按钮没有按下时,按钮内部断开,GPIO引脚处电压为高电平;当有人按下按钮时,按钮内部导通,外部VDD经过电阻和按钮连接到地,形成回路,此时GPIO引脚处电压就变成了低电平。此时VDD电压全部分压在了电阻上(这个电阻就叫分压电阻,这个电阻不能太小,因为电阻的功率是U*U/R)

(3)总结:按键的工作方法:其实就是按键的按下与弹开,分别对应GPIO的两种电平状态(按下则GPIO为低电平,弹开则GPIO为高电平)。此时SoC内部可以通过检测这个GPIO的电平高低来判断按键有没有被按下,这个判断结果即可作为SoC的输入信号。

按键属于输入类设备

(1)按键一般用来做输入设备(由人向SoC发送信息的设备,叫输入设备),由人向SoC发送按键信号(按键信号有2种:按下信号和弹开信号)。

(2)有些设备就是单纯的输入设备,譬如按键、触摸屏等;有些设备就是单纯的输出设备,譬如LCD;还有一些设备是既能输入又能输出的,叫输入输出设备(IO),譬如串口。

按键的2种响应方法

(1)SoC处理按键有两种思路:轮询方式和中断方式

(2)轮询方式,就是SoC主动的每隔一段时间去读取(按键所对应的)GPIO的电平高低,以此获得按键信息;缺点在于CPU要一直注意按键事件,会影响CPU做其他事情。

(3)中断方式,就是SoC事先设定好GPIO触发的中断所对应的中断处理程序ISR,当外部按键按下或弹开时会自动触发GPIO对应的外部中断,导致ISR执行,从而自动处理按键信息。

嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击这里

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

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

相关文章

无涯教程-JavaScript - COS函数

描述 COS函数返回给定Angular的余弦值。 语法 COS (number)争论 Argument描述Required/OptionalNumber The angle in radians for which you want the cosine.Required Notes 如果Angular以度为单位,则将Angular乘以PI()/180或使用RADIANS函数将Angular转换为弧度 弧度(…

汉威科技亮相2023上海传感器展,智能传感新品引关注

作为全球三大传感器展之一的中国(上海)国际传感器技术与应用展览会,被誉为全球传感器行业发展的风向标,每届展会都会展出数以万计的行业尖端传感新技术和新产品。今年,第8届中国(上海)国际传感器…

强大的Druid

一 基本原理 一次数据库访问总共分几步?三步:第一步是创建一个连接;第二步是操作数据;第三步是释放连接。对于一个业务动作来说,我们并不关心第一步和第三步,我们真正关心的是第二步——操作数据。为了做一…

51单片机智能小车之蓝牙控制并测速小车、wife控制小车、4g控制小车、语音控制小车

目录 1. 蓝牙控制小车 2. 蓝牙控制并测速小车 3. wifi控制测速小车 4. 4g控制小车 5. 语音控制小车 1. 蓝牙控制小车 使用蓝牙模块,串口透传蓝牙模块,又叫做蓝牙串口模块 串口透传技术: 透传即透明传送,是指在数据的传输过…

想了解软件测试生命周期知识吗?

一、软件测试的目的 1.基于不同的立场,存在着两种完全不同的测试目的。 2.从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。 3.从软件开发者的角度出发,则希望测试成为表明软件产品…

【Python保姆级教程】List容器

文章目录 前言一、列表是什么二、列表的定义2.1 有初始值2.2 空列表使用方括号创建空列表使用list()函数创建空列表 三、list列表常用操作3.1 添加元素3.2 删除元素3.3 修改元素3.4 列表长度 四、遍历操作4.1 使用for循环4.2 使用while循环和索引 总结 前言 Python是一种广泛使…

Python傅立叶变换

1. 什么是傅里叶变换? 在数学中,变换技术用于将函数映射到与其原始函数空间不同的函数空间。傅里叶变换时也是一种变换技术,它可以将函数从时域空间转换到频域空间。例如以音频波为例,傅里叶变换可以根据其音符的音量和频率来表示…

在项目中,关于前端实现数据可视化的技术选择

前言 在项目中,数据可视化以图表、报表类型为主。 需求背景 技术框架是Vue2.x版本,组件库是Ant Design of Vue能够支撑足够多的图表类型开发图表大小/位置能够随意变动图表样式需要支持丰富多样的用户配置强大、开放的图表语法支持复杂的数据可视化场景…

「UG/NX」Block UI 指定平面SpecifyPlane

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

linux内核分析:线程和进程创建,内存管理

lec18-19:进程与线程创建 lec20-21虚拟内存管理 内核代码,全局变量这些只有一份,但是内核栈有多份,这可能就是linux线程模型1对1模式的由来。通过栈来做的 x86 CPU支持分段和分页(平坦内存模式)两种 分段,选择子那里就有特权标记了

C#教师考勤管理系统asp.net+sqlserver

3.3.1 员工部分 1:请假管理:包括填写请假条,提交申请,查看审批,审核请假等等。 2:考勤管理:针对具体的员工考勤的统计等管理。 3:个人资料管理:进行个人信息管理&#xf…

接口测试——接口协议抓包分析与mock_L1

目录: 接口测试价值与体系常见的接口协议接口测试用例设计postman基础使用postman实战练习 1.接口测试价值与体系 接口测试概念 接口:不同的系统之间相互连接的部分,是一个传递数据的通道接口测试:检查数据的交换、传递和控制…

每日一博 - WebHook vs Polling

文章目录 概述图解 概述 下面的图表显示了轮询和Webhook之间的比较。 假设我们运行一个电子商务网站。客户通过API网关将订单发送到订单服务,然后订单服务将订单传递给支付服务进行支付交易。支付服务然后与外部支付服务提供商(PSP)通信&am…

Python 列表的下标索引

视频版教程 Python3零基础7天入门实战视频教程 我们可以通过列表的下标索引获取列表元素。 下标索引从0开始,第一个元素下标索引是0,第二个元素下标索引是1,…第N个元素下标索引是N-1 举例: # 定义一个有多元素的列表 list1 …

数据库系统外部的体系结构

单用户结构主从式结构分布式结构客户机/服务器结构(C/S结构)浏览器 / 服务器结构(B/S结构)感谢 💖 上一篇文章 数据库系统的三级模式和二级映射介绍的是数据库系统内部的体系结构,是从应用开发…

端口敲击守护程序之DC-9

OSCP系列靶场-Intermediate-DC-9 目录 OSCP系列靶场-Intermediate-DC-9总结准备工作信息收集-端口扫描目标开放端口收集目标端口对应服务探测 信息收集-端口测试80-HTTP端口的信息收集信息收集-网站指纹漏洞利用-网站指纹(无)信息收集-HTML隐藏信息查看信息收集-目录扫描信息收…

C语言 —— 初步入门知识(内存、指针、结构体)

本篇文章将接着上篇继续介绍C语言的基础知识,那么对于C语言大部分初学者会觉得难以理解, 所以作者将指针单独拿出来写篇较短的文章进行讲解。 1.指针 1.1 内存 要学习指针,就先要了解内存。一起来看。 内存是计算机中的关键组成部分&#xff…

机器学习技术(九)——支持向量机算法实操(基于SVM的模型对潜在运营商客户进行分类)

机器学习技术(九)——支持向量机算法实操 文章目录 机器学习技术(九)——支持向量机算法实操一、引言二、数据集介绍三、导入相关依赖库四、读取数据五、数据可视化分析1、是否为潜在客户与不同用户主叫时长对比2、是否为潜在合约…

绘图(一)弹球小游戏

AWT编程 语雀 仓库:Java图形化界面: Java图形化界面学习demo与资料 (gitee.com) 很多程序如各种小游戏都需要在窗口中绘制各种图形,除此之外,即使在开发JavaEE项目时, 有 时候也必须"动态"地向客户 端生成各种图形、…

C语言进阶指针(3) ——qsort的实现

大家好&#xff0c;我们今天来学习回调函数qsort的实现。 首先让我们打开cplusplus.com找到qsort函数。 我们看到这个函数就可以看到它的头文件和参数信息。 #include<stdlib.h> void qsort (void* base, size_t num, size_t size, int (*compar)(const void*,const voi…