GPIO 8种工作模式

2023-10-27

GPIO 是什么

        GPIO全称General Purpose Input Output 即通用输入/输出,其实GPIO的本质就是芯片的一个引脚,通常在ARM中所有的I/O都是通用的。不过由于每个开发板上都会设计不同的外围电路,这就造成GPIO的功能可能有所不同,大部分GPIO都是有复用功能的,比如有些GPIO可能是串口的TX或RX,也可能是I2C的SCL或SDA线。

 原理图

 GPIO 8种输入/输出模式

        GPIO共有8中输入输出模式(4输入+4输出),分别是:上拉输入、下拉输入、浮空输入、模拟输入、开漏输出、推挽输出、开漏复用输出、推挽复用输出 ,下面我们详细介绍以下上面的八种输入输出模式。

各自常用的宏定义如下:

上拉输入: GPIO_Mode_IPU

下拉输入: GPIO_Mode_IPD

浮空输入: GPIO_Mode_IN_FLOATING

模拟输入: GPIO_Mode_AIN

开漏输出: GPIO_Mode_Out_OD

推挽输出: GPIO_Mode_Out_PP

开漏复用: GPIO_Mode_AF_OD

推挽复用: GPIO_Mode_AF_PP

各自模式原理与特性

推挽输出

        输出高电平时就是直接接到了单片机的VDD(3.3V),输出低电平就是直接接到单片机VSS(0V),最直接的输出方式,让输出控制变为了VDD/VSS输出。

推挽复用

        原理同推挽输出,区别在于输出写入端连接于片上外设(如串口TX)使其具有其他功能。

开漏输出

        内部只连接了单片机的VSS(0V),需要在外部电路连接上拉电阻,既可输出高低电平。这样的好处就是,我们高电平将会是VCC的电压,是我我们可以控制的电压。 

开漏复用

        原理同开漏输出,区别在于输出写入端连接于片上外设(如串口TX)使其具有其他功能。

浮空输入

        浮空输入模式下,I/O端口的电平信号直接进入输入数据寄存器。也就是说,I/O的电平状态是不确定的,完全由外部输入决定;如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的,通常用于IIC、USART等总线设备上。

上拉输入

        上拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平保持在高电平(并且在I/O端口输入为低电平的时候,输入端的电平也是低电平)

下拉输入

        下拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平保持在低电平;并且在I/O端口输入为高电平的时候,输入端的电平也是高电平。

模拟输入

        模拟输入模式下,I/O端口的模拟信号(电压信号,而非电平信号)直接模拟输入到片上外设模块,比如ADC模块等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GPIO 8种工作模式 的相关文章

  • iview引用自定义的图标

    iview引用自定义的图标 护花使者 博客园
  • C++图书管理系统(基于结构体数组)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 需求分析 二 代码实现 总结 前言 问题描述 要求以图书馆管理业务为背景 设计并实现一个 图书馆管理信息系统 软件 使用该系统可以方便查询图书的信息 借阅
  • 线程池为什么能维持线程不释放,随时运行各种任务?

    版权声明 本文为博主原创文章 未经博主允许不得转载 技术交流可邮 cjh94520 outlook com https blog csdn net cjh94520 article details 70545202 线程池 之前一直有这个疑
  • kd树搜索与线性搜索对比

    在做毕业设计的时候 遇到这样一个需求 给定一万五千个点 再给定一个目标点 要求离目标点的最近点 说白了就是求 最近邻 问题 传统的方式 就是从第一个点开始算距离 把一万五千个点都算完 再取最小值 但是这样的方式比较慢 所以利用了knn算法中
  • python期末复习

    python语言的特点 1 Python 是一种面向对象的解释型计算机程序设计语言 2 Python的语法十分简洁 大大地提高了开发效率 更容易维护 3 Python是一门开源的跨平台语言 拥有丰富的第三方库 标识符命名规则 1 只能包含字
  • 数字化转型之数字化和业务化论证

    引言 数据业务化的本质是数据的产品化 商业化与价值化 主要强调产品化 新业务和专业化运作 也就是以数据为主要内容和生产原料 打造数据产品 按照产品定义 研发 定价 包装和推广的套路进行商业化运作 把数据产品打造成能为企业创收的新兴业务 数字

随机推荐

  • Java八股文 v2.0

    一 Java基础 1 Java有哪些基本数据类型 byte short int long float double char boolean 2 Java类型转换 从小类型到大类型 直接转 从大类型到小类型 需要在强制类型转换的变量前面加上
  • 服务器系统手册,服务器安全使用手册

    系统安全 1 保存好系统密码并定期进行修改 2 开启系统自动更新功能 3 开启杀毒软件 经常更新病毒库 定期扫描病毒 4 做好网站的注入漏洞检查 做好网站目录访问权限控制 5 慎重安装硬件驱动 以免损坏操作系统 6 不要安装路由和远程访问服
  • 傅里叶分析之掐死教程

    作者 韩昊 知乎 Heinrich 微博 花生油工人 知乎专栏 与时间无关的故事 谨以此文献给大连海事大学的吴楠老师 柳晓鸣老师 王新年老师以及张晶泊老师 转载的同学请保留上面这句话 谢谢 如果还能保留文章来源就更感激不尽了 更新于 201
  • python创建虚拟环境报错_centos8使用python3自带的venv创建虚拟环境报错问题

    一 背景 damon localhost python3 m venv pdf env Error Command home damon pdf env bin python3 Im ensurepip upgrade default pi
  • IPsec协议过程

    版权声明 如有需要 可供转载 但请注明出处 https blog csdn net City of skey article details 86618784 目录 1 ipsec协议简介 2 IPSec工作模式 2 1 传输模式 2 2
  • 三星S5P6818之UBOOT网络配置

    三星S5P6818之UBOOT网络配置 使用友善提供的固件烧写到SD卡发现UBOOT并不能联网 于是研究了UBOOT源码 并调通了网络 以下步骤亲测可用 前言 这个适合友善nanopi3系列的开发板 M3 Fire3 T3等 或者其他使用
  • Python不平衡数据处理库imblearn安装和使用

    一般直接pip安装即可 安装不成功可能是因为 没有安装imblearn需要的Python模块 对应安装即可 pip install U imbalanced learn imblearn中的过采样方法 Over sampling metho
  • VMware 安装、移除Ubuntu系统

    目录 前言 安装虚拟机 1 新建虚拟机 2 进入向导 3 选择系统镜像 4 添加系统设置 用户名主机名密码 lt 实际没啥用 在系统安装过程中才设置的 gt 5 设置虚拟机名称 存放位置 6 磁盘容量 7 设置虚拟机硬件配置 8 自定义硬件
  • vue框架

    一 vue是什么 官方解释 vue是一套用于构建用户界面的渐进式框架 vue是一个js框架 提供了一套开发规则 按照这个开发规则可提高开发效率 补充 渐进式意思是 vue js本身功能局限 一旦配合其他的工具可以增强其能力 vue rout
  • Linux离线安装NTP服务,无外网环境下配置本地时间同步

    1 常用命令 rpm qa grep ntp 查询已安装的ntp版本信息等 rpm e nodeps ntp 4 2 6p5 29 el7 centos 2 x86 64 卸载 systemctl status ntpd 查询ntp服务状态
  • es打分机制

    基于Lucene的倒排索引算法
  • 【python数据挖掘课程】二十.KNN最近邻分类算法分析详解及平衡秤TXT数据集读取

    这是 Python数据挖掘课程 系列文章 也是我这学期上课的部分内容及书籍的一个案例 本文主要讲述KNN最近邻分类算法 简单实现分析平衡秤数据集 希望这篇文章对大家有所帮助 同时提供些思路 内容包括 1 KNN算法基础原理知识 2 最近邻分
  • 如何手动运行一个容器【一】

    作者 行云创新 周朋 每个刚涉足容器的人都会对容器的实现有所困惑 容器是如何实现的 是如何复用宿主机的资源 并且实现资源隔离的 下面会用shell创建一个容器 为大家展示一个容器的创建过程 1 创建镜像 我们一般用 docker pull
  • 宏定义的#和##

    宏定义中一个 表示右侧的符号转化为字符串 比如 define STR x x QString s STR 3 编译ok s值为 3 之前在看QT源码时 发现了下面的宏定义 define QLOCATION 0 FILE QT STRINGI
  • Typora + Gitee 配置图床_图片自动上传教程

    一 创建 Gitee 仓库 进入 Gitee 官网 注册一个属于自己的账号 点击创建仓库并且设置为开源 一定要是开源的public 只有这样你的图片才能被别人访问到 二 设置私人令牌 进入个人设置 gt 选择私人令牌进行创建 gt 设置自己
  • 华为od机考真题-HJ6-质数因子(简单)

    while 1 try num int input c 2 while c lt num 0 5 if num c 0 print c end
  • C++ Primer 学习笔记十五 —— 面向对象编程

    记录笔记原则 1 用简单易懂的语言叙述自己的理解 避免照搬原文 2 用实例说明 避免空洞 3 多做总结和横向对比 避免片面 面向对象三个基本概念 抽象 继承 动态绑定 继承使我们简化了类的定义 动态绑定使我们简化了接口的实现 使得所有继承层
  • 探究java IO之AutoCloseable,Closeable和Flushable接口

    http blog csdn net caiwenfeng for 23 article details 41862225 有3个接口对于流类相当重要 其中两个接口是Closeable和Flushable 它们是在java io包中定义的
  • BQ40Z50/BQ4050/BQ40Z80 等 BQ40xxx 系列电量计外围电路设计指导

    TI 电量计在消费和工业市场电池产品广泛应用 本文围绕电量计的功能逐一介绍电量计供电和 采样 对外交互 电池保护 电池均衡等外围电路设计 以帮助大家优化电量计电路设计 提高 开发效率 FAE 壹伍柒 陆陆贰陆 柒捌贰伍 1 电量计外围电路框
  • GPIO 8种工作模式

    GPIO 是什么 GPIO全称General Purpose Input Output 即通用输入 输出 其实GPIO的本质就是芯片的一个引脚 通常在ARM中所有的I O都是通用的 不过由于每个开发板上都会设计不同的外围电路 这就造成GPI