当前位置: 首页 > news >正文

【1. GPIO】

1. GPIO

  • 1.GPIO (General-purpose input/output)
  • 2.输入浮空
  • 3.输入上拉、输入下拉
  • 4.模拟输入
  • 5.开漏输出、开漏复用输出
  • 6.推挽输出、推挽复用输出

1.GPIO (General-purpose input/output)

  • GPIO:通用输入输出功能。
  • PIN:引脚

I/O端口指的是具有通用输入输出功能的PIN引脚。其基本结构为:

在这里插入图片描述

  • 输入模式
    • 输入浮空
    • 输入上拉
    • 输入下拉
    • 模拟输入
  • 输出模式
    • 开漏输出
    • 开漏复用输出
    • 推挽输出
    • 推挽复用输出

2.输入浮空

浮空:即逻辑器件与引脚间不接入高电平,也不接入低电平,由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平,呈现高阻态。浮空最大的特点是电压的不确定性,I/O端口有可能是0V,也有可能是Vcc,还可能是两者之间。这种设置在数据传输时使用较多。

在这里插入图片描述

浮空输入一般可以作为ADC输入时用,这样可以减少上、下拉电阻对ADC采集结果的影响。

3.输入上拉、输入下拉

上拉:将上拉电阻处开关合上,将不确定的信号通过一个电阻钳制在VDD。无信号输入时输入端的电平为高电平。信号输入为低电平是输入端的电平应该也为低电平。
下拉:将下拉电阻处开关合上,将不确定的信号通过一个电阻钳制在VSS。保证无信号输入时输入端的电平为低电平。信号输入为高电平是输入端的电平应该也为高电平。

在这里插入图片描述

4.模拟输入

当输入端口作为模拟量输入端口时,为了使外界的模拟量更加真实的读入到单片机中,我们既不能合上上、下拉电阻开关,也不能让信号经过TTL 施密特触发器。

在这里插入图片描述

5.开漏输出、开漏复用输出

开漏输出:

  1. 明显的优势就是可以很方便的调节输出的电平,因为输出电平完全由上拉电阻连接的电源电平决定。所以在需要进行电平转换的地方,非常适合使用开漏输出
  2. 可以实现"线与"功能,所谓的"线与"指的是多个信号线直接连接在一起,只有当所有信号全部为高电平时,合在一起的总线为高电平;只要有任意一个或者多个信号为低电平,则总线为低电平。

在这里插入图片描述


开漏电路
 虽然我们可以看到开漏输出是没有办法在内部输出一个高电平,但是这一个看似是缺点。其实实际上是一种优点。我们可以得到,当给一个低电平的时候,MOS管没有导通,此时电压不确定导致无法输出高电平,但是一旦我们在外部(漏极D处)增加一个上拉,那么这一个缺点就会被有效避免。并且,因为是我们自己设计一个上拉,这个上拉的电压是由我们自己确定,这样我们就可以根据外部电路需要多少V的高电平来给这一个上拉的电压,可以更好的适应更多情况。
在这里插入图片描述


6.推挽输出、推挽复用输出

 推挽输出的结构是由两个三极管或者MOS管受到互补信号的控制,两个管子始终保持一个处于截止,另一个处于导通的状态。
 推挽输出的最大特点是可以能输出真正的高电平和低电平,在两种电平下都具有驱动能力。但推挽输出的一个缺点是,如果当两个推挽输出结构相连在一起,一个输出高电平,即上面的MOS导通,下面的MOS闭合时;同时另一个输出低电平,即上面的MOS闭合,下面的MOS导通时。电流会从第一个引脚的VCC通过上端MOS再经过第二个引脚的下端MOS直接流向GND。整个通路上电阻很小,会发生短路,进而可能造成端口的损害。

在这里插入图片描述


推挽电路
在这里插入图片描述


推挽输出和开漏输出的比较
在这里插入图片描述


相关文章:

  • Netty——NIO(Selector处理read事件)代码示例
  • 计算机与软件技术系毕业设计(论文)实施意见-计算机毕业设计论文怎么写
  • C/C++语言100题练习计划 83——背包问题(贪心算法实现)
  • JS:数组类型及常用的方法使用
  • Oracle-job跑批变慢案例
  • java/php/python在线求助救援网站vue+elementui
  • Vivado关联Vscode,解决Vscode自动保存和卡顿问题
  • Java基础用Date类编写万年历
  • 前端面试题2
  • 通信算法之七十八:无人机反制—精华总结
  • Leetcode--剑指Offer
  • 【web-攻击应用程序框架】(12.2)共享主机与服务提供商:攻击、保障
  • JavaScript-操作BOM对象
  • position定位总结+元素选择器+window对象的子对象
  • MySQL什么情况会导致索引失效?
  • 《Java编程思想》读书笔记-对象导论
  • android 一些 utils
  • Docker: 容器互访的三种方式
  • ECS应用管理最佳实践
  • exif信息对照
  • Linux链接文件
  • node和express搭建代理服务器(源码)
  • Protobuf3语言指南
  • unity如何实现一个固定宽度的orthagraphic相机
  • 当SetTimeout遇到了字符串
  • 普通函数和构造函数的区别
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 收藏好这篇,别再只说“数据劫持”了
  • 正则与JS中的正则
  • ​queue --- 一个同步的队列类​
  • !!Dom4j 学习笔记
  • # include “ “ 和 # include < >两者的区别
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (16)Reactor的测试——响应式Spring的道法术器
  • (30)数组元素和与数字和的绝对差
  • (6)STL算法之转换
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (分布式缓存)Redis分片集群
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (一一四)第九章编程练习
  • (转) Android中ViewStub组件使用
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • ***测试-HTTP方法
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [C语言]——C语言常见概念(1)
  • [DP 训练] Longest Run on a Snowboard, UVa 10285
  • [GN] 后端接口已经写好 初次布局前端需要的操作(例)
  • [GXYCTF2019]禁止套娃
  • [IDF]被改错的密码