在嵌入式系统和单片机开发中,GPIO(通用输入输出)控制器是一个非常重要的组件。GPIO引脚的灵活性使它们能够执行多种功能,从简单的输入输出到复杂的通信任务。为了帮助大家快速了解和掌握GPIO控制器的六种常见模式,我们特地整理了这篇文章。。
快速搞懂GPIO控制器的六种模式
我们拿STM32芯片举例,下图是GPIO控制器的简单框图:

通过框图可以分为输入和输出两个部分


通用输入模式:直接读(检测)IO口的电平状态;
复用输入模式:从IO进来的数据信号要经过片上外设(串口控制器),再到核心;
模拟输入模式:外界的模拟量(电压)通过IO口进入到ADC控制器,ADC控制器转换成数字量。


通用输出模式:核心直接控制IO输出高低电平;
复用输出模式:核心将数据信号发送到片上外设,片上外设再通过IO口传送出去;
模拟输出模式:核心将数字信号发送到DAC上,DAC将数字信号转换成电压值,通过IO出去。
在单片机开发过程中,需要根据实际场景去选择对应的模式,拿STM32举例,模式的选择可以通过配置GPIO端口模式寄存器来进行选择,如下图:

看图可知这个寄存器一共有32个位,每2位控制一个GPIO口,根据寄存器每个位的描述可以知道,对应位写入0和1就可以将对应的IO口配置成相应的模式。
总结
理解和掌握GPIO控制器的六种模式是嵌入式系统开发中的基础技能。每种模式都有其独特的应用场景和优势,通过合理配置和使用GPIO引脚,可以极大地提升系统的功能和性能。
关键字:GPIO 控制器
引用地址:
快速搞懂GPIO控制器的六种模式
推荐阅读最新更新时间:2026-03-24 10:08
在STM8 Nucleo-64开发板上使用GPIO和中断控制器驱动LED
NUCLEO-8S208RB(基于STM8S208RBT6)和NUCLEO-8L152R8(基于STM8L152R8T6)开发板可用于评估所有STM8S系列和STM8L系列微控制器的主要特性。 本应用笔记简要介绍了如何使用NUCLEO-8S208RB和NUCLEO-8L152R8开发板上的GPIO和中断控制器驱动一组LED指示灯。 当微控制器(本例中为STM8S208RBT6或STM8L152R8T6)使用连接到主机电脑的USB电缆供电时,LD2和LD5指示灯(不是板载的LED)开始闪烁。 每次按下“push”按钮,中断控制器产生一个用于控制I/O的中断,然后改变LED的显示方式。 1. 应用说明 本节主要介绍了在NU
[单片机]
【STM32单片机学习】第8章 GPIO—LED点灯
本章实验的目的是通过LED点灯,让读者熟悉STM32F103最基本的外设GPIO。首先介绍了GPIO的一些基本概念和知识,然后介绍开发板LED灯部分硬件设计,再结合硬件进行软件设计,最后展示实验效果。本章阅读提示:8.1 关于GPIO(介绍GPIO的一些知识,刚开始概念有些多,读者慢慢理解)8.2 硬件设计(分析LED灯部分的硬件设计和RGB灯,需要理解)8.3 软件设计(讲解如何编写LED程序,需要重点理解)8.4 实验效果(展示实验效果,操作即可) 8.1 关于GPIO GPIO(General-Purpose IO ports,通用输入/输出接口),用于感知外界信号(输入模式)和控制外部设备(输出模式),如图 6.1
[单片机]
STM32 GPIO配置速成:三步轻松搞定
快速入手STM32:三步骤搞定GPIO配置 STM32是意法半导体(STMicroelectronics)推出的一款广泛应用于嵌入式开发的32位微控制器。对于初学者来说,STM32的配置可能会显得有些复杂,但其实只要掌握了核心步骤,就能快速上手。本文将带你通过三个简单步骤,轻松配置STM32的GPIO引脚,并实现一个LED闪烁的小项目。 第一步:启用时钟 在STM32中,每个外设(如GPIO、USART、定时器等)都需要时钟信号才能工作。因此,使用任何外设的第一步就是启用它的时钟。 代码示例 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); 解释 RCC_APB2P
[单片机]
STM32 GPIO与AFIO原理详解及高阶实战应用指南
一、GPIO:芯片与世界的桥梁 1.1 GPIO的8种工作模式详解 工作模式 等效电路 典型应用场景 配置要点 输入浮空 高阻态+施密特触发器 数字信号检测 抗干扰能力弱,需稳定信号 输入上拉 40KΩ上拉+施密特触发器 按键检测 省去外部上拉电阻 输入下拉 40KΩ下拉+施密特触发器 低电平有效信号 防止悬空状态误触发 推挽输出 PMOS+NMOS图腾柱结构 LED驱动 驱动能力20mA(单引脚) 开漏输出 仅NMOS(需外部上拉) I2C总线 必须接外部上拉电阻 复用推挽 外设控制推挽电路 SPI、USART_TX 配置为对应外设功能 复用开漏 外设控制开漏电路 I2C、CAN 电平匹配关键 模拟输入 直
[单片机]
STM32F103C8T6单片机GPIO输出点亮初灯:HAL库实战入门
我们都说,学习一个型号的单片机的第一个尝试,就是使用这个单片机点亮一个小灯。点亮小灯就意味着我们开始初步掌握我们手中的单片机了,我们学会使用单片机来控制最简单的外设了。当然,只会这个还是远远不够的,我们需要进一步理解单片机的更多知识才能走的更远。 先干!从单片机的实操点灯开始 对于GPIO,你可以认为是单片机无形的大手,他来拨弄最简单的我们外接的外设。一个最经典的例子就是点亮一个LED。我们先看看LED是啥。 笔者简单的说,LED就是一个小灯(你想想,LED小灯,LED小灯),我们这里暂时不介绍LED本身,只介绍我们的LED的外部接口特性.首先,LED是一个简单的拥有正负极的一个发光二极管.笔者这里screenshot下我自己买的
[单片机]
STM32中的GPIO笔记
1.GPIO是STM32可控制的引脚,STM32的GPIO被分成很多组,每组有16个引脚。每个GPIO端口包含:2个32位配置寄存器(CRL、CRH),2个32位数据寄存器(IDR、ODR),1个32位复位寄存器(BSRR),1个16位复位寄存器(BRR)和1个32位锁定寄存器。 2.GPIO端口的每个位可以配置成:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出、复用推挽输出。 3.复位寄存器(BSRR、BRR)可以对任何GPIO寄存器的独立访问。配置寄存器(CRL和CRH)可以配置GPIO的工作模式和工作速度,每4位控制一个IO,CRL控制低8位,CRH控制高8位。其中MODE位配置速度,CNF
[单片机]
stm32f103和stm32f407的GPIO口模式设置以及相互对应的关系
GPIO端口的每个位可以由软件分别配置成8种模式。 ─输入浮空 ─输入上拉 ─输入下拉 ─模拟输入 ─开漏输出 ─推挽式输出 ─推挽式复用功能 ─开漏复用功能 GPIO的模式配置均是从对应的参考手册内的GPIO章节的GPIO功能描述内的表18得到的。表内各个数值对应的内容从stm32f4xx_gpio.h文件内得到。 F103的GPIO口模式设置 3要素: //拷贝自stm32f10x_gpio.h(91行) typedef struct { uint16_t GPIO_Pin; //引脚 GPIOSpeed_TypeDef GPIO_Speed; //速度 G
[单片机]
STM32系列单片机GPIO资料收集及总结
一、GPIO配置 (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 GPIO_Speed_10MHz 最高输出速率10MHz GPIO_Speed_2MHz 最高输出速率2MHz GPIO_Speed_50MHz 最高输出速率50MHz 1.1 I/O口的输出模式下,有3种输出速度可选(2M
[单片机]