STM32GPIO引脚八种工作模式

embedded/2024/9/23 2:15:32/

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/embedded/98901.html

相关文章

【前端面试】一篇讲透客户端存储——IndexedDB、Cookie……

存储空间 IndexedDB 是一种在用户浏览器中运行的客户端存储技术,它允许网页应用程序存储大量结构化数据。IndexedDB 存储空间的底层实际上是使用用户的本地文件系统来存储数据的。 以下是一些关于 IndexedDB 存储空间的底层细节: 文件系统:IndexedDB 数据存储在用户的文件…

❤Nodejs第四章(操作本地数据库增改查)

❤Nodejs 第四章(Node +Express操作本地数据库增删改查) (前置知识)Node.js RESTful API 以下为 REST 基本架构的四个方法: GET - 用于获取数据PUT - 用于更新或添加数据DELETE - 用于删除数据POST - 用于添加数据注:get和delete是在路径中传递数据,而post和put可以在…

etcd参数解释

etcd 版本 [rootaaaaaa ~]# /data/etcd/etcd-v3.5.15-linux-amd64/etcd --version etcd Version: 3.5.15 Git SHA: 9a5533382 Go Version: go1.21.12 Go OS/Arch: linux/amd64基础命令: etcd [flags]:启动一个 etcd 服务器。etcd --version:显示 etcd…

学习大数据DAY42 hive 分桶表

目录 分桶表 分桶表注意事项 hive 分桶表-创建分桶表 hive 排序关键字 hive 排序语句 上机练习 分桶表 分区提供一个隔离数据和优化查询的便利方式。不过,并非所有的数据集都可形 成合理的分区。对于一张表或者分区,Hive 可以进一步组织成桶&…

微信小程序--31(todolist案例)

一.功能 输入待办事件添加代办事件删除代办事件 二、步骤 1.添加输入框 .wxml代码&#xff1a; <!-- 1.输入框 --><input type"text" bindinput"handleInput" value"{{text}}" /> .wxss代码&#xff1a; /* 1.输入框样式 */ i…

QT :VS2019 CMake QCefView编译

QCefView 介绍 QCefView是为Qt开发的一个封装集成了CEF&#xff08;Chromium Embedded Framework&#xff09;库的Widget UI组件。它允许开发者在Qt项目中轻松嵌入网页&#xff0c;并利用CEF的丰富Web能力来快速开发混合架构的应用程序。 Web能力集成&#xff1a;QCefView集成…

STM32中断系统之TIM定时中断

文章目录 前言一、TIM定时器简介1.1 定时器的基本功能1.2 时基单元1.3 定时器的其他功能1.4 TIM定时器的分类 二、TIM定时器的内部结构2.1 基本定时器2.2 通用定时器2.3 高级定时器 三、定时中断的基本结构四、时序图4.1 预分频器时序4.2 计数器时序4.3 计数器无预装时序4.4 计…

大模型在网络安全领域的七大应用

人工智能&#xff08;AI&#xff09;是指由计算机系统或机器执行的智能任务&#xff0c;通常需要人类智能来完成。AI的一个重要分支是自然语言处理&#xff08;NLP&#xff09;&#xff0c;即让计算机理解和生成自然语言。NLP的一个核心技术是语言模型&#xff08;LM&#xff0…