智能硬件(6)之通用引脚(GPIO)

        小编带领大家学习的四大开源硬件和智能模块,他们之间是如何通信的,主控芯片是如何控制智能模块,做某些事情呢?有没有小朋友发起疑问呢?

        这里,涉及到了特别重要的知识点,就是通用引脚,英文缩写是GPIO。所以的开源硬件(主控芯片)都有自己的特定引脚,这些引脚是主控芯片暴漏出来,唯一和外界通信的桥梁。

一、通用管脚概念

        今天就来学习下,通用引脚的概念和用作。引脚:是单片机这种主控芯片特有的名字,可以理解它和我们人类的手脚相似,不管做什么事情,都是需要依靠它,下图针脚形状的都是引脚。

              

        单片机的引脚会有很多,人类只有一副手脚,那是因为我们的手脚可以做很多复杂的动作,攥拳、握手、活动手指等。因为单片机的引脚功能相对人类能做的能做到的动作很有限,所以需要更多的引脚来完成复杂和大工作量的任务。

二、管脚功能和模式

        通用引脚主要分为数字、模拟两种功能,又分为输出和输入两种模式:

        ①状态1一般等于系统电压,指的是当前的主控芯片采用的电压,esp32系列是3.3V的供电电压,所以系统电压就是3.3V。

        ②状态0一般等于GND,也就是接地,电压为0V。

        ③模拟电压是一个范围的值,输出的电压范围一般是 0 到 系统电压,输入同理。

        这里面可能很多小朋友,对数字和模拟理解可能比较晦涩,这是需要大篇幅来讲解,会在后续的分享中,给大家一一讲解,今天主要掌握数字引脚的输出电压状态就可以啦。

        上述的uart、i2c、spi、adc和pwm等功能都是通过管脚的输出和输入模式来实现的。

三、TTL逻辑电平

        这里给大家补充一个概念,ttl电平,上述说状态1一般是系统电压,状态0一般是GND,其实这是不准确,这个是根据控制芯片的供电电压决定的。

        比如:VCC(系统电压)5.0V,输入的状态1(Vih)电压指的是  大于2.0V就都可以认为是状态1;同理输入状态0(Vil)电压指的是小于0.8V就都是状态0;输出状态1(Voh)电压指的是 大于2.4V就可以;同理输出状态0(Vol)电压指的是 小于0.4V就可以。

        单片机的输出电压状态1和0,是直接被拉满的,以3.3V供电电压esp32为例,状态1输出的就是3.3V,状态0输出的就是0V。

四、通用引脚如何实现 串口(uart)、i2c、spi等外设

        通过上述的学习,我们了解到,引脚只能输出、输入状态0、1,那么他们是如果实现复杂的外协资源呢。

        其实,在计算机领域,都是采用二进制编码实现任意的消息的,比如ascii编码。

        我们的引脚只能有0、1两种状态,是不是正好映射我们的二进制 0、1呢,那我们想要实现特定的信息,是不是只需要让我们的引脚连续输出0、1数据,然后组合起来是不是就可以表示特定的字符,多个字符就是可以表示特定的意义呢。

        没有错,我们的丰富的外设资源,uart、i2c、spi等,就是通过多个字符,组合来完成特定的意义,按照特定的协议标准,就形成了特定的的外设资源的总线协议了。

        uart、i2c、spi这些资源在后续的分享中会讲解,大家这里只需要知道,我们的引脚是如果实现复杂消息通信的就可以了。

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

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

相关文章

Apache Flink 进阶教程(六):Flink 作业执行深度解析

目录 前言 Flink 四层转化流程 Program 到 StreamGraph 的转化 StreamGraph 到 JobGraph 的转化 为什么要为每个 operator 生成 hash 值? 每个 operator 是怎样生成 hash 值的? JobGraph 到 ExexcutionGraph 以及物理执行计划 Flink Job 执行流程…

华为端口隔离简单使用方法同vlan下控制个别电脑不给互通

必须得用access接口,hybrid口不行 dhcp enable interface Vlanif1 ip address 192.168.1.1 255.255.255.0 dhcp select interface interface MEth0/0/1 interface GigabitEthernet0/0/1 port link-type access port-isolate enable group 1 interface GigabitEther…

【大模型实践】基于文心一言的对话模型设计

文心一言(英文名:ERNIE Bot)是百度全新一代知识增强大语言模型,文心大模型家族的新成员,能够与人对话互动、回答问题、协助创作,高效便捷地帮助人们获取信息、知识和灵感。文心一言从数万亿数据和数千亿知识…

机器学习笔记 - 音频信号处理基础知识

一、音频处理基础 音频处理是指使用各种技术和算法对音频信号进行操作和修改。 它涉及对音频数据应用数字信号处理 (DSP) 方法,以增强、修改或分析声音。音频处理广泛应用于各种应用中,包括音乐制作、电信、语音识别、音频压缩等。 1、信号类型 连续信号:连续信号或连续时间…

构建创新学习体验:企业培训系统技术深度解析

企业培训系统在现代企业中发挥着越来越重要的作用,它不仅仅是传统培训的延伸,更是技术创新的结晶。本文将深入探讨企业培训系统的关键技术特点,并通过一些简单的代码示例,展示如何在实际项目中应用这些技术。 1. 前端技术&#…

开源 AI 新秀崛起:Bittensor 更像是真正的“OpenAI”

强大的人工智能正在飞速发展,而完全由 OpenAI、Midjourney、Google(Bard)这样的少数公司控制 AI 不免让人感到担忧。在这样的背景下,试图用创新性解决方案处理人工智能中心化问题、权力集中于少数公司的 Bittensor,可谓…

PHP下载安装以及基本配置

目录 引言 官网 下载 配置 1. 鼠标右键“此电脑”>“属性” 2. 打开高级系统设置 3. 打开环境变量 4. 双击系统变量中的path 5. 新建新的path 6. 将刚刚安装的位置加入环境变量 7. 检查是否安装成功 引言 PHP("PHP: Hypertext Preprocessor"…

PLC物联网,实现工厂设备数据采集

随着工业4.0时代的到来,物联网技术在工厂设备管理领域的应用日益普及。作为物联网技术的重要一环,PLC物联网为工厂设备数据采集带来了前所未有的便捷和高效。本文将围绕“PLC物联网,实现工厂设备数据采集”这一主题,探讨PLC物联网…

【GitHub精选项目】短信系统测试工具:SMSBoom 操作指南

前言 本文为大家带来的是 OpenEthan 开发的 SMSBoom 项目 —— 一种用于短信服务测试的工具。这个工具能够发送大量短信,通常用于测试短信服务的稳定性和处理能力。在合法和道德的范畴内,SMSBoom 可以作为一种有效的测试工具,帮助开发者和系统…

前端微信小程序AES加密解密踩坑

项目场景: 今天蛮沮丧的,在和别人对接的时候aes加解密的时候踩了坑。今天有个同事请假了,所以本来他和别人对接的活,老大给了我,然后我就正式踏上了战战兢兢的对接之路。 1.一开始的时候对面先是问用的啥加密方法。这…

使用Guava轻松创建和管理不可变集合

第1章:引言 大家好,我是小黑。今天,我们来聊聊一个在Java编程里超有用的话题:使用Guava创建和管理不可变集合。首先,咱们得明白,什么是不可变集合。简单来说,不可变集合就是一旦创建就不能被修…

使用OpenCV DNN模块进行人脸检测

内容的一部分来源于贾志刚的《opencv4应用开发、入门、进阶与工程化实践》。这本书我大概看了一下,也就后面几章比较感兴趣,但是内容很少,并没有想像的那种充实。不过学习还是要学习的。 在实际工程项目中,并不是说我们将神经网络…

时间序列分析

常用数据集 2.monash数据集 官网链接 我们的存储库包含30个数据集,包括公开可用的时间序列数据集(不同格式)和由我们管理的数据集。 DatasetDomainNo: of SeriesMin. LengthMax. LengthCompetitionMultivariateDownloadSourceM1Multiple100115150YesNoYearly Quart…

深度剖析Ajax实现方式(原生框架、JQuery、Axios,Fetch)

Ajax学习 简介: ​ Ajax 代表异步 JavaScript 和 XML(Asynchronous JavaScript and XML)的缩写。它指的是一种在网页开发中使用的技术,通过在后台与服务器进行数据交换,实现页面内容的更新,而无需刷新整个…

高级算法设计与分析(六) -- 分支限界法

系列文章目录 高级算法设计与分析(一) -- 算法引论 高级算法设计与分析(二) -- 递归与分治策略 高级算法设计与分析(三) -- 动态规划 高级算法设计与分析(四) -- 贪心算法 高级…

RIPV1配置实验

查看路由器路由表: 删除手工配置的静态路由项: Route1->Config->static Remove删除路由项 删除Route3的路由项,方法同上删除Route2的路由项,方法同上 完成路由器RIP配置: Route1->Config->RIP->Ne…

lv12 根文件系统12

目录 1 根文件系统 2 BusyBox 3 实验九 3.1 在 busybox 官网下载 busybox 源码(这里我们下载 busybox-1.22.1.tar.bz2) 3.2 拷贝 busybox 源码包到 ubuntu 的家目录下,解压并进入其顶层目录 3.3 进入 busybox 配置界面(…

新零售模式:重新定义商业未来

随着科技的飞速发展,我们的生活方式正在经历着前所未有的变革。其中,新零售模式正逐渐成为商业领域的新热点,它正在重新定义我们的购物方式,并为企业带来更多的商业机会。 一、新零售模式概述 新零售模式是指将互联网、大数据、…

在 Windows 中关闭指定端口的方法

方法一&#xff1a;使用命令行&#xff08;Command Prompt&#xff09; 查找端口占用情况 打开命令提示符&#xff08;Command Prompt&#xff09;并输入以下命令来查找占用指定端口的进程&#xff1a; netstat -aon|findstr "<port_number>" 这里的 <p…

[已解决] Ubuntu远程桌面闪退+登录显示“远程桌面由于数据加密错误 , 这个会话将结束“

两个月前&#xff0c;由于跑代码在Ubuntu配置环境&#xff0c;乱七八糟的下载了很多东西&#xff0c;导致了一系列问题..... 问题1 Ubuntu远程桌面闪退 实验室有两台服务器&#xff0c;IP后三位分别为141和142&#xff0c;其中141在输入密码后立即闪退&#xff0c;142可以正常…