STM32GPIO引脚八种工作模式

devtools/2024/9/23 9:23:39/

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/devtools/100123.html

相关文章

谷歌、火狐及Edge等浏览器如何使用allWebPlugin中间件响应ActiveX插件事件

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefo…

1.反爬虫机制

一、IP 封锁 网站可以检测请求的IP地址,并封锁那些频繁请求的IP,使其无法访问网站。这是一种常见的反爬虫策略,用于防止单个IP地址对服务器造成过大的负载。 解决办法 : 使用代理IP池以避免IP封锁 // 待补充 二、请求头检测(Us…

【软考】网络安全控制技术

目录 1. 说明2. 防火墙技术3. 加密技术4. 用户识别技术5. 访问控制技术6. 网络反病毒技术7. 网络安全漏洞扫描技术8.入侵检测技术9.例题 1. 说明 1.为了保护网络信息的安全可靠,除了运用法律和管理手段外,还需依靠技术方法来实现。2.网络安全控制技术目…

IT 行业的就业情况

当前,IT 行业的就业情况呈现出以下特点: 1. 需求持续增长:随着数字化转型的加速,各个行业对信息技术的依赖程度不断提高,推动了对 IT 人才的持续需求。特别是在云计算、大数据、人工智能、物联网等新兴领域&#xff…

Vue解决父子组件传值,子组件改变值后父组件的值也改变的问题

vue开发过程中,父组件通过props传值给子组件,子组件在页面展示父组件的值,在操作子组件值以后,即使不点击确定按钮,父组件中的值也发生了变化,但是需求是操作子组件数据以后,必须点击"确定…

海外媒体发稿推荐:约旦著名新闻媒体海外PR新闻稿发布

海外媒体发稿推荐:约旦著名新闻媒体海外PR新闻稿发布 约旦新闻jordannews 约旦新闻jordannews是约旦著名的新闻媒体,为公众提供准确、全面、及时的新闻报道和深度分析。我们致力于为全球读者带来约旦及地区的最新动态,涵盖政治、经济、社会…

ShellSweepPlus 介绍:开源 Web Shell 检测

ShellSweepPlus 概述 ShellSweepPlus是一款开源工具,旨在帮助安全团队检测潜在的 Web Shell。它是 ShellSweep 的增强版 Webshell 的威胁 Web shell 对组织构成重大威胁,因为它们为攻击者提供了对受感染 Web 服务器的未经授权的访问和控制。攻击者可以利用这些 shell 来:…

pytorch深度学习基础 7(简单的的线性训练,SGD与Adam优化器)

接下来小编来讲一下一些优化器在线性问题中的简单使用使用,torch模块中有一个叫optim的子模块,我们可以在其中找到实现不同优化算法的类 SGD随机梯度下降 基本概念 定义:随机梯度下降(SGD)是一种梯度下降形式&#…