STM32GPIO引脚八种工作模式

news2025/1/18 17:12:18

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.coloradmin.cn/o/2059764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营day50:图论01:图论理论基础;深度优先搜索理论基础;98. 所有可达路径;广度优先搜索理论基础

图论理论基础 分类:有向图,无向图,有无权重 度:【无向图】:有几条边连接该节点,该节点就有几度。 【有向图】:每个节点有出度和入度。出度:从该节点出发的边的个数。入度&#xf…

.net maui安卓开发中适用明文传输(一)

背景:最近在做一个pad上的项目,目的是执行每日点检功能(就是检查设备的各项保养指标);前期用HBuilder做了一个,但是现场的触摸屏选用的是TouchPie 安卓版本是6.0版本,上次开发的软件可以在安卓7.0上完美兼容,但由于触摸屏安卓版本太低不能兼容;询问厂商才知道这款触摸…

前端性能优化的指标

性能优化指标的出现,谷歌在2020年提出的Core Web Vitals 和 Web Vitals 了解谷歌浏览器自带的性能调试工具DCL、L、FP、FCP、LCP,图层(有layout布局就是回流,painting绘制就是重绘) 回流和重绘的理解 页面第一次打开一定回流和重绘,回流一定重绘,回流出现一般是位置改变…

BEV世界:通过统一的BEV潜在空间实现自动驾驶的多模态世界模型

BEVWorld: A Multimodal World Model for Autonomous Driving via Unified BEV Latent Space BEV世界:通过统一的BEV潜在空间实现自动驾驶的多模态世界模型 Abstract World models are receiving increasing attention in autonomous driving for their ability t…

【数据结构】PTA 求链表的倒数第m个元素 C语言

请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素。 函数接口定义: ElementType Find( List L, int m ); 其中List结构定义如下: typedef struct…

什么是机器人快换盘?

机器人快换盘,行业内也称作工具快换盘、换枪盘、快换工具盘、快速更换器、快换器、 快换夹具、治具快换等。是末端执行器快速更换装置(End-Of-Arm Tooling,简称EOAT),是工业自动化领域中用于机器人手臂上的一种重要设备…

短视频矩阵工具种类繁多,一招教你轻松做选择!

在当下竞争日益激烈的市场中,选择一个稳定且高效的矩阵营销系统对于企业和实体店来说至关重要,然而众多的工具往往让人难以抉择,今天笔者给大家四个关键筛选点,帮你快速筛选出最合适自己的矩阵营销工具: 1. 功能全面性…

探索AI工作流工具:提升编程效率的三大利器

问题:面对屎山代码,你是如何处理的? 今天我将为你推荐三个强大的AI工作流工具,它们将彻底改变你的编程体验,让你在工作中如鱼得水,事半功倍! 1. 代码解释器:解读复杂代码的利器 初…

[CISCN 2023 华北]ez_date

[CISCN 2023 华北]ez_date 点开之后是一串php代码&#xff1a; <?php error_reporting(0); highlight_file(__FILE__); class date{public $a;public $b;public $file;public function __wakeup(){if(is_array($this->a)||is_array($this->b)){die(no array);}if( (…

初级python代码编程学习----简单的图形化闹钟小程序

我们来创建一个简单的图形化闹钟程序通常需要使用图形用户界面&#xff08;GUI&#xff09;库。以下是使用Python的Tkinter库创建一个基本闹钟程序的步骤&#xff1a; 环境准备 确保已安装Python。安装Tkinter库&#xff08;Python 3.8及以上版本自带Tkinter&#xff0c;无需…

计算机毕业设计选题推荐-餐馆满意度分析-Python爬虫-K-means算法-nlp情感分析

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

亿玛科技:TiDB 6.1.5 升级到 7.5.1 经验分享

作者&#xff1a; foxchan 原文来源&#xff1a; https://tidb.net/blog/6e628afd 为什么要升级&#xff1f; 本次升级7.5的目的如下&#xff1a; 1、tidb有太多的分区表需要归档整理。7.5版本这个功能GA了。 2、之前集群tikv节点的region迁移过慢&#xff0c;影响tikv节…

http连接未释放导致生产故障

凌晨4点运维老大收到报警&#xff08;公司官网页面超时&#xff0c;上次故障因为运维修改nginx导致官网域名下某些接口不可用后&#xff0c;运维在2台nginx服务器上放了检测程序&#xff0c;检测官网页面&#xff09;&#xff0c;运维自己先看了看服务器相关配置&#xff0c;后…

linux 安装MAT(MemoryAnalyzerTool),并且分析java dump的方法

当我们的java进程出现异常的时候&#xff0c;我们第一件想做的事情是什么呢&#xff1f;应该就是要分析java的内存了。假如说&#xff0c;我们已经有了一个java内存的dump文件&#xff0c;有哪些的方法&#xff0c;可以对这个导出的dump文件进行分析呢&#xff1f; 比如&#…

Vue插值:双大括号标签、v-text、v-html、v-bind 指令

创建应用程序实例后&#xff0c;需要通过插值进行数据绑定。数据绑定是 Vue.js 最核心的一个特性。建立数据绑定后&#xff0c;数据和视图会相互关联&#xff0c;当数据发生变化时&#xff0c;视图会自动进行更新。这样就无须手动获取 DOM 的值&#xff0c;使代码更加简洁&…

【Python_PyQtGraph 学习笔记(十一)】基于ImageExporter更改导出图片的大小

基于ImageExporter更改导出图片的大小 前言正文1、ImageExporter 类介绍1.1 ImageExporter 类特点1.2 ImageExporter 类用法2、示例代码3、遇到的问题前言 在 基于PyQtGraph设置槽函数,实现保存图片到本地的功能 一文中我们成功地将 PyQtGraph 绘制的图形以图片形式保存到本地…

ChatGPT与Discord的完美结合——团队协作的得力助手

本文将教你如何集成Discord Bot&#xff0c;助力团队在工作中实现更高效的沟通与协作。通过充分发挥ChatGPT的潜力&#xff0c;进一步提升工作效率和团队协作能力。无需编写任何代码即可完成本文所述的操作&#xff0c;进行个性化定制只需对参数进行微调即可。 方案介绍 如果在…

【Python系列】中位数计算

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

鸿蒙开发5.0【基于AVCodecKit】音视频解码及二次处理播放

1&#xff1a;场景描述 场景&#xff1a;基于VideoCoder的音视频解码及二次处理播放。 首先导入选择器picker模块&#xff0c;使用PhotoViewPicker方法拉起图库选择视频文件&#xff0c;将视频文件传递到native侧使用Demuxer解封装器进行解封装&#xff0c;再使用OH_VideoDec…

Yolov8:模型部署到安卓端

1. 项目准备 1.1 先安装JDK和Android studio &#xff08;1&#xff09;JDK下载&#xff1a; 官网站&#xff1a;https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 同意协议后&#xff0c;下载相应版本的JDK 我这里没有下载JDK21版的&a…