STM32GPIO引脚八种工作模式

server/2024/9/23 9:36:10/

1. GPIO简述

GPIO(General-purpose input/output),通用型输入输出。简单理解就是我们可以控制输入输出的STM32引脚,统称为GPIO

GPIO存在的意义就是用程序控制或读取它们的输出或输入

2. 功能描述

每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。根据数据手册中列出的每个I/O端口的特定硬件特征,GPIO端口的每个位可以由软件分别配置成多种模式。
这段话给大家翻译一下,简单说就是
  • 每个IO口(就是引脚)都有两个配置寄存器分别负责高16位和低16为就是H和L的区别:
    • GPIOx_CRL(x就是什么引脚  例如GPIOA) CRL 就是 LOW 控制低16位
    • GPIOx_CRH                                                    CRH 就是HIGH 控制高16为
  • 每个IO口(还是引脚)都有两个数据寄存器分别负责端口的输入输出
    • GPIOx_ODR  ODR的意思就是(Output Data Register) O就是Output 的意思负责输输出     当然 这里所谓的输出是引脚的输出  不是给引脚的输出

    • GPIOx_IDR    IDR的意思就是(Input Data Register) I就是input 的意思负责输输入              这里所谓的输入给是引脚的输入  不是引脚给的输出

3. GPIO的8种工作模式

  • 3.1 输入浮空(Input floating)

    当一个GPIO配置为输入浮空时,它既没有内部上拉电阻也没有内部下拉电阻连接到该引脚。这意味着在没有外部信号驱动的情况下,该引脚的状态是不确定的,可能会受到噪声的影响。

  • 3.2 输入上拉(Input pull-up)

    在这种配置中,当GPIO设置为输入时,内部会有一个上拉电阻将引脚电压拉高至电源电压(Vcc)。如果没有外部信号将其拉低,则该引脚将保持高电平状态。

  • 3.3 输入下拉(Input pull-down)

    与输入上拉相反,输入下拉会在GPIO配置为输入时使用内部下拉电阻将引脚电压拉低至地(GND)。如果没有外部信号将其拉高,则该引脚将保持低电平状态。

  • 3.4 模拟输入(Analog)

    模拟输入模式允许GPIO引脚用作模数转换器(ADC)的输入端口,用于读取模拟电压信号。这种模式通常禁用了数字输入功能。

  • 3.5 通用开漏输出(Output open-drain)

    在开漏输出模式下,当输出为低电平时,内部晶体管导通,将引脚拉低至地;而当输出为高电平时,内部晶体管关闭,引脚呈现高阻态。通常需要外加上拉电阻来实现高电平输出。

  • 3.6 通用推挽式输出(Output push-pull)

    推挽式输出模式下,GPIO可以驱动高电平或低电平。内部电路包含两个晶体管,一个用来拉高输出电压(推),另一个用来拉低输出电压(拉)。这种方式可以直接驱动负载而不需要额外的上拉或下拉电阻。

  • 3.7 推挽式复用功能(Alternate function push-pull)

    这是将GPIO配置为支持特定外围设备功能(如SPI、I²C等通信协议)的一种模式,并且采用推挽式的输出方式。这意味着引脚可以用于特殊的外设功能而不是普通的GPIO操作。

  • 3.8 开漏复用功能(Alternate function open-drain)

    与推挽式复用功能类似,但使用的是开漏输出方式。这意味着在执行特殊功能时,如I²C通信,需要外加上拉电阻以确保正确的逻辑电平。

每种配置模式都有其特定的应用场景和优势,在设计硬件和编写固件时选择合适的配置非常重要。


http://www.ppmy.cn/server/103896.html

相关文章

Android 10.0 锁屏页面忘记锁屏密码情况下点击5次解锁图标弹出锁屏密码功能实现

1. 前言 在10.0的系统ROM定制化开发中,在一些产品中带锁屏密码的功能中,系统默认是滑动解锁,但是客户会设置锁屏密码,在某些时候会 忘掉锁屏密码,导致需要进入恢复出厂设置然后才能进入系统桌面,这样就导致系统的保存的资料都丢失了,所以需要要求在锁屏密码页面在忘记解…

SQL进阶技巧:最近有效的缺失值填充问题【last_value实现版】

目录 0 场景描述 1 数据准备 2 问题分析 3 小结 0 场景描述 场景:现在有一张商品入库表,包括商品id、商品成本和入库日期3个字段,由于某些原因,导致部分商品的成本缺失(为0或者没有值都是缺失),这样不利于我们计算成本。所以现在要把缺失的商品进价补充完整,补充的…

LLama 3 跨各种 GPU 类型的基准测试

2024 年 4 月 18 日,AI 社区对 Llama 3 70B 的发布表示欢迎,这是一款最先进的大型语言模型 (LLM)。该型号是 Llama 系列的下一代产品,支持广泛的用例。该模型 istelf 在广泛的行业平台上表现良好,并提供了新…

<数据集>水面垃圾识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:4308张 标注数量(xml文件个数):4308 标注数量(txt文件个数):4308 标注类别数:1 标注类别名称:[Trash] 序号类别名称图片数框数1Trash43085593 使用标注工具&#x…

番外-PyTorch细节知识

文章目录 一、torch.nn.Parameter1.1 Parameter与buffer的区别1.2 nn.Module类中实现注册Parameter的机制 二、Pytorch 中的 Tensor , Variable & Parameter2.1 Tensor2.2 Variable2.3 Parameter 三、pytorch的常用函数总结3.1 .data 与 .detach3.2 .scatter 与 ._scatter3…

【Protobuf】Protobuf进阶

Protobuf进阶 一、默认值二、更新消息1、规则介绍2、实例代码 三、保留字段四、未知字段1、 如何获取未知字段2、提取未知字段3、意义 五、option选项1、 选项介绍2、 选项分类3、常用选项列举4、设置自定义选项 一、默认值 前面我们说过:对于proto3的语法来说mess…

ant design pro 中用户的表单如何控制多个角色

ant design pro 如何去保存颜色ant design pro v6 如何做好角色管理ant design 的 tree 如何作为角色中的权限选择之一ant design 的 tree 如何作为角色中的权限选择之二ant design pro access.ts 是如何控制多角色的权限的 看上面的图片 当创建或编辑一个用户时,…

AI + 3D 机器人视觉领域综合资源库

随着人工智能技术的不断发展,3D 机器人视觉领域已经成为了一个备受关注的研究方向。在这个领域中,研究者们致力于探索如何让机器人更好地理解三维空间,从而实现更加智能和灵活的操作。为了方便大家学习和研究,这里介绍一个全面的资源库——Awesome Robotics 3D,它汇集了最…