GPIO的基础知识

GPIO的基础知识

  • STM32H7 的GPIO基本配置
  • 不使用的引脚设置为模拟模式
  • IO补偿单元
    • 关闭补偿单元
    • 开启补偿单元
  • 注入电流大小和特性
  • GPIO 的8种模式
    • 四种输入模式
    • 两种输出模式
      • 推挽输出
      • 开漏输出
    • 复用推挽和开漏
  • GPIO拉灌电流负载能力
  • GPIO兼容CMOS和TTL

首先对于GPIO我们需要注意以下几点

  1. 对于不使用的引脚,推荐设置为模拟模式,悬空即可。
  2. GPIO的速度等级高的时候,最好使能IO补偿单元
  3. GPIO还涉及到了注入电流的最大值问题。
  4. GPIO8种模式要弄清楚。
  5. GPIO的拉电流负载和灌电流负载能力要了解
  6. GPIO兼容CMOS和TTL电平

STM32H7 的GPIO基本配置

◆ 输出状态:开漏/推挽 + 上拉/下拉电阻。
◆ 通过输出数据寄存器**(GPIOx_ODR)或者外设(GPIO 设置为复用模式时)输出数据。
◆ GPIO 速度等级设置。
◆ 输入状态:浮空,上拉/下拉,模拟。
◆ 通过输入数据寄存器
(GPIOx_IDR)或者外设(GPIO 设置为复用模式)**输入数据。
◆ 通过寄存器 GPIOx_BSRR 实现对寄存器 GPIOx_ODR 的位操作。
◆ 通过配置寄存器 GPIOx_LCKR 的锁机制,实现冻结 IO 口配置。
◆ 每两个时钟周期就可以翻转一次 IO。
◆ 高度灵活的引脚复用功能,允许 IO 引脚既可以做 GPIO也可以做功能复用。

不使用的引脚设置为模拟模式

主要从功耗和防干扰考虑。
◆ 所有用作带上拉电阻输入的 I/O 都会在引脚外部保持为低时产生电流消耗。此电流消耗的值可通过使
用的静态特性中给出的上拉 / 下拉电阻值简单算出。
◆ 对于输出引脚,还必须考虑任何外部下拉电阻或外部负载以估计电流消耗。
◆ 若外部施加了中间电平,则额外的 I/O 电流消耗是因为配置为输入的 I/O。此电流消耗是由用于区
分输入值的输入施密特触发器电路导致。除非应用需要此特定配置,否则可通过将这些 I/O 配置为模
拟模式以避免此供电电流消耗。 ADC 输入引脚应配置为模拟输入就是这种情况。
◆ 任何浮空的输入引脚都可能由于外部电磁噪声,成为中间电平或意外切换。为防止浮空引脚相关的电
流消耗,它们必须配置为模拟模式,或内部强制为确定的数字值。这可通过使用上拉 / 下拉电阻或
将引脚配置为输出模式做到。
这里也有一个低功耗的例子必须把所有IO设置成模拟模式才能够达到官方文档里面给出的功耗:
低功耗项目链接

IO补偿单元

IO 补偿单元用于控制 I/O 通信压摆率(tfall / trise)以此来降低 I/O 噪声。当前 STM32H7 的速度等
级可以配置为以下四种:

#define GPIO_SPEED_FREQ_LOW ((uint32_t)0x00000000U) /*!< Low speed */
#define GPIO_SPEED_FREQ_MEDIUM ((uint32_t)0x00000001U) /*!< Medium speed */
#define GPIO_SPEED_FREQ_HIGH ((uint32_t)0x00000002U) /*!< Fast speed */
#define GPIO_SPEED_FREQ_VERY_HIGH ((uint32_t)0x00000003U) /*!< High speed */

关闭补偿单元

在这里插入图片描述

开启补偿单元

在这里插入图片描述

注入电流大小和特性

在这里插入图片描述

GPIO 的8种模式

◆ 输入浮空
◆ 输入上拉
◆ 输入下拉
◆ 模拟功能
◆ 具有上拉或下拉功能的开漏输出
◆ 具有上拉或下拉功能的推挽输出
◆ 具有上拉或下拉功能的复用功能推挽
◆ 具有上拉或下拉功能的复用功能开漏
由于上拉和下拉是可选配置,对应的 HAL 库配置使用下面 6 种就可以表示:
◆ GPIO_MODE_INPUT 输入模式
◆ GPIO_MODE_OUTPUT_PP 推挽输出
◆ GPIO_MODE_OUTPUT_OD 开漏输出
◆ GPIO_MODE_AF_PP 复用推挽
◆ GPIO_MODE_AF_OD 复用开漏
◆ GPIO_MODE_ANALOG 模拟模式

四种输入模式

在这里插入图片描述
通过上面的引脚结构图可以得到如下三种方式
◆ 浮空输入:CPU 内部的上拉电阻、下拉电阻均断开的输入模式。
◆ 下拉输入:CPU 内部的下拉电阻使能、上拉电阻断开的输入模式。
◆ 上拉输入:CPU 内部的上拉电阻使能、下拉电阻断开的输入模式。
而模拟输入模式是 GPIO 引脚连接内部 ADC。
在这里插入图片描述

两种输出模式

推挽输出

推挽电路是两个参数相同的三极管或 MOSFET,以推挽方式存在于电路中。 电路工作时,两只对称
的开关管每次只有一个导通,导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。
推拉式输出级提高电路的负载能力。 相对于开漏输出模式,推挽输出最大优势是输出高电平时,上升时
间快,电压驱动能力强。
在这里插入图片描述

开漏输出

在这里插入图片描述开漏端相当于 MOS 管的漏极(三极管的集电极),要得到高电平状态必须外接上拉电阻才行,因此
输出高电平的驱动能力完全由外接上拉电阻决定,但是其输出低电平的驱动能力很强。开漏形式的电路有
以下几个特点:

  1. 输出高电平时利用外部电路的驱动能力,减少 IC 内部的驱动。
  2. 开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出
    低电平。如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉
    电源的电压,便可以改变传输电平。上拉电阻的阻值决定了逻辑电平转换的速度。阻值越大,速度越
    低,功耗越小。
  3. 开漏输出提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接
    上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果
    对延时有要求,则建议用下降沿输出。
  4. 可以将多个开漏输出连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻
    辑”关系,即“线与”。可以简单的理解为:在所有引脚连在一起时,外接一上拉电阻,如果有一个
    引脚输出为逻辑 0,相当于接地,与之并联的回路“相当于被一根导线短路”,所以外电路逻辑电平
    便为 0,只有都为高电平时,与的结果才为逻辑 1。

复用推挽和开漏

复用指的是 GPIO 切换到 CPU 内部设备(比如 SPI,I2C,UART 等电路),也就是 GPIO 不是作为普通
IO 使用,是由内部设备直接驱动。推挽和开漏的特征同上。

GPIO拉灌电流负载能力

在这里插入图片描述

GPIO兼容CMOS和TTL

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注:本片文章大多参考武汉安富莱电子有限公司STM32_V7开发板文档和https://www.armbbs.cn/硬汉嵌入式论坛,个人只是做了整合和部分修改,作为个人学习分享。

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

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

相关文章

适用于车载设备无钥匙进入系统汽车用晶振FA-238A

汽车用晶振FA-238A是一款适用于车载设备无钥匙进入系统的耐高温晶振。汽车用晶振FA-238A是爱普生推出一的款MHz表贴式晶体单元&#xff0c;具有很好的预率性能&#xff0c;符合AEC-0200标准&#xff0c;其封装尺寸仅为3.2x2.5x0.7mm&#xff0c;工作温度范围在-40℃~125℃之间&…

LeetCode-热题100:206. 反转链表

题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a; head [1,2,3,4,5] 输出&#xff1a; [5,4,3,2,1] 示例 2&#xff1a; 输入&#xff1a; head [1,2] 输出&#xff1a; [2,1] 示例 3…

低代码革新:软件开发的未来潜力与创新路径探索

过去的一年&#xff0c;挑战与机遇并存。人们一边忧虑市场经济下行所带来的新的增长难题、裁员危机&#xff0c;一边惊叹于AIGC、量子技术等领域不断涌现新的创新成果。 时代发生了改变&#xff0c;传统“互联网”的模式已走入尾声&#xff0c;新一轮的科技革命与产业变革正在到…

9proxy—数据采集工具全面测评

9Proxy数据采集工具Unlock the web with 9Proxy, the top residential proxy provider. Get unlimited bandwidth, affordable prices, and secure HTTPS and Socks5 configurations.https://9proxy.com/?utm_sourceblog&utm_mediumcsdn&utm_campaignyan 前言 在当今数…

线性数据结构

1.数组 数组使用一块连续的内存来存储元素&#xff0c;并且元素的类型都是相同的。可以通过索引来访问。 2.链表 链表由一系列节点组成&#xff0c;每个节点包含两部分&#xff1a;数据部分和指针部分。数据部分用于存储元素的值&#xff0c;指针部分则指向下一个节点。没有使…

面向C++程序员的Rust教程(二)

先序文章请看&#xff1a; 面向C程序员的Rust教程&#xff08;一&#xff09; 所有权与移动语义 要说Rust语言跟其他语言最大的区别&#xff0c;那笔者觉得非数这个所有权和移动语义莫属。 深浅复制 对于绝大多数语言来说&#xff0c;变量/对象之间的赋值通常都是复制语义。…

算法-小记

Integer&#xff0c;Long&#xff0c;BigInteger字符转化 在 Java 中&#xff1a; 如果字符串超过 333333 位&#xff0c;不能转化为 Integer 如果字符串超过 656565 位&#xff0c;不能转化为 Long 如果字符串超过 500000001位&#xff0c;不能转化为 BigInteger 牛顿迭代…

EXCEL通过VBA字典快速分类求和

EXCEL通过VBA字典快速分类求和 汇总截图 Option ExplicitOption Explicit Sub answer3() Dim wb As Workbook Dim sht As Worksheet Set wb ThisWorkbook Set sht wb.Worksheets(2) Dim ss1 As Integer Dim ss2 As Integer Dim i As Integer Dim j As Integer j 1Dim aa()…

安卓系统框架和Framework概述

目录 一、安卓系统框架1.1 系统应用层1.2 Java 框架层1.3 Native C/C系统库和 Android Runtime1.4 硬件抽象层(HAL)1.5 Linux Kernel 内核层 二、Framework2.1 关于Framework层:2.2 Android Framework的三大核心功能2.3 多语言编写的好处 一、安卓系统框架 图为 Google 官方提…

基于DCT(离散余弦变换)的图像水印算法,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

红杉资本:2024年关于AI的4大预测

四大预测 预测一&#xff1a;Copilot 将逐渐向 AI Agent 转变。 2024 年&#xff0c;AI 将从辅助人类的 Copilot 转变为真正能替代一些人类工作的Agent。AI 将更像是一个同事&#xff0c;而不仅仅是一个工具&#xff0c;这点在软件工程、客服等行业已经初步显现。 预测二&…

AI音乐创作生成翻唱h5公众号流量主小程序开发

AI音乐创作生成翻唱h5公众号流量主小程序开发 五音不全? Ai音乐小程序系统让你秒变音乐家 分享赚钱 分享小程序给好友充值使用即可或分佣 Ai音乐素材 媒体配乐的绝佳利器 生成步骤 输入灵感/歌词 可手动输入&AI自动输入 ↓ 输入歌名 可手动输入&AI自动输入 ↓ 选择…