尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

GPIO

发布时间:2026/9/30 2:26:10

资讯中心
01
ARTICLE

GPIO

GPIO
这次小编带来的是一些嵌入式基础理论概念若有不正确的地方欢迎一起探讨。1.GPIO的基础知识1.1GPIO的基本概念1.1.1 GPIO是什么GPIO即General Purpose Input/output通用输入输出出口。是MCU的一个 内部结构用来做输入输出的控制电路。输入输出的本质就是输入输出高低电平更严谨的来说就是可软件配置的外部引脚电路。从而达到获取外设信息控制外设的目的。输入的原因这些高低电平在上层语言层解释就是0/1在下层硬件外设角度就会被视为MCU控制外设的手段。输出的原因单片机的核心作用是“控制”控制相关外设就必须先获取外设相关的数据然后根据外设状态数据变化再通过输出控制外设或者报告给用户等。复用GPIO同一个物理引脚通过多路选择器 MUX 切换控制权交给片上外设UART、SPI、I2C、PWM、CAN 等接管不再由 GPIO 寄存器控制高低电平。需要复用GPIO的原因引脚数量有限减轻CPU负担。1.1.2 GPIO Port与Pin的概念Port端口的意思Port原意为“港口”在计算机科学中引申为“数据交换的入口或出口”现代微控制器eg.STM32继承了这一概念将这一组GPIO引脚称为“GPIO Port”eg.GPIOA,GPIOB,因为他们本质上是芯片与外部世界的“数据交换接口”。Pin就是引脚的意思。之所以称为“GPIO Port”而不是“GPIO Group”是因为Group只能体现分组概念体现不出来数据交换概念。Port在计算机领域就有数据交换的概念之分。1.1.3 GPIOAGPIOBGPIOC等端口每组GPIO是一个独立外设有自己的寄存器每组端口最多包含16哥引脚Px0~Px15(xA/B/C/D...)GPIOA、GPIOB、GPIOC 在存储器上映射到不同的基地址所以操作 GPIOB 不会影响 GPIOA。1.1.4 PA0PA1PB0等引脚编号含义PAx:Port A第 x 号引脚属于 GPIOA 端口;PBx:Port B第 x 号引脚属于 GPIOB 端口;PCx:Port C第 x 号引脚属于 GPIOC 端口;逻辑引脚名PA0、PB0软件、原理图上用的名字和寄存器对应。芯片物理引脚号Pin1、Pin2…芯片封装上的引脚序号和 PA0 没有数字上的对应关系。PA0、PA1、PB0 是端口 组内序号的逻辑引脚名称用来把代码里的寄存器位和芯片硬件引脚对应起来。1.1.5 GPIO与MCU芯片引脚的对应关系PA0/PA1/PB0 是逻辑引脚名逻辑引脚通过芯片内部金属走线固定连接到芯片封装上的物理引脚Pin这个映射关系由芯片厂商定义写在芯片数据手册的引脚表中。三层关系:软件层GPIOA/GPIOB端口外设有一套寄存器;逻辑引脚PA0、PA1、PB0对应端口寄存器的某一位;硬件层芯片物理引脚 Pin n芯片外壳上的焊盘引脚;GPIO并不是一个单独的“功能”而是 MCU 与外部世界进行数字信号交互的基础接口。1.2GPIO的内部结构1. 2.1输入通道引脚外部电平 → 保护二极管 → 上拉 / 下拉电阻 →施密特触发器把模拟电平整形为标准数字 0/1 → 输入数据寄存器 IDR施密特触发器消除电平抖动防止噪声误判高低电平。1.2.2输出通道输出数据寄存器 ODR或者复用外设信号 → 输出驱动电路PMOSNMOS 管 → 芯片外部引脚。1.2.3输入数据寄存器 IDRGPIOx_IDR只读寄存器每一位对应一个引脚bit0 对应 PA0作用读取引脚当前外部电平高电平读 1低电平读 0。IDR 反映的是芯片引脚上真实电平不是 ODR 的值。1.2.4输出数据寄存器 ODRGPIOx_ODR可读写寄存器写 1让引脚输出高写 0让引脚输出低。写 ODR 只是设置输出电平最终引脚电平还要看输出驱动电路。1.2.5上拉电阻 / 下拉电阻片内由寄存器 PUPDR 控制开关上拉电阻接通后引脚默认被拉到 VCC。引脚悬空时电平为高。下拉电阻接通后引脚默认被拉到 GND。引脚悬空时电平为低。关闭浮空高阻态悬空引脚电平不确定容易受干扰。1.2.6输出驱动电路PMOS NMOS 两个 MOS 管两种模式推挽输出PMOS 和 NMOS 配合。输出高时 PMOS 导通输出低时 NMOS 导通。驱动能力强适合驱动 LED。开漏输出只使用 NMOSPMOS 永远断开。输出 1 时引脚高阻输出 0 时拉低。适合 I2C 这类总线。1.2.7复用功能GPIO 引脚可以把控制权交给片上外设USART、SPI、TIM、ADC复用输出引脚不再受 ODR 控制由外设输出信号如串口 TX复用输入外部信号送入外设串口 RX配置 MODER 为复用模式再通过 AFR 寄存器选择具体复用功能。2.GPIO的工作模式2.1输出模式通用就是通常使用指的是ARM-CPU直接控制GPIO输出。复用就是重复使用指的是MCU内部的片上外设复用GPIO进行输入输出。复用器是从多组输入信号中选择一个作为有效输入。GPIO到底是被ARM-CPU直接使用还是被其他片上外设使用达到复用效果就有他说了算。输出控制电路接受内部逻辑电平直接驱动输出级MOS管的栅极控制其通断从而将弱信号转换为具有足够驱动能力的外部输出电平。补充要理解GPIO输出先要理解P-MOS和N-MOS。MOSMOSFET金属氧化物半导体场效应管。P-MOSP沟道金属氧化物半导体。N-MOSN沟道金属氧化物半导体。P-MOS和N-MOS的本质是一个开关。2.1.1通用推挽输出核心思想交替闭合或者开启P-MOS和N-MOS即可。输出数据寄存器写1闭合P-MOS断开N-MOS输出高电平。输出数据寄存器写0断开P-MOS闭合N-MOS输出低电平。本质是交替闭合断开P-MOS和N-MOS开关让外部引脚接入VDD或者接地进而对外呈现出高电压和低电压然后因为电路通路形成有输出电流推和吸收挽电流的效果。2.1.2通用开漏输出核心思想去掉P-MOS让P-MOS永远关闭。在开漏模式下MCU针对特定引脚的输出都是该引脚对应的N-MOS的漏记输出。向输出数据寄存器写1最终表示的是N-MOS断开。向输出数据寄存器写0表示N-MOS管闭合。输出数据寄存器写0N-MOS闭合输低电平输出数据寄存器写1N-MOS断开输出高阻抗所谓高阻抗就是MCU和外部针脚彻底断开相当于开路或者N-MOS D漏极和外部引脚互相悬空。开漏模式输出只能输出低电平和高阻抗无法输出高电平。2.1.3复用推挽输出核心思想引脚输出控制权从 GPIO 的 ODR 寄存器交给片上外设输出驱动电路仍然是 PMOSNMOS 推挽结构高低电平都具备强驱动能力。2.1.4复用开漏输出核心思想引脚输出控制权交给片上外设不再受 ODR 寄存器控制输出驱动采用开漏结构输出低电平时导通拉低输出高电平时为高阻态。2.2输入模式2.2.1浮空输入断开下拉电阻开关断开上拉电阻开关。2.2.2上拉输入闭合上拉电阻开关断开下拉电阻开关。开关在MCU内部可以通过MCU提供的配置寄存器选择闭合还是断开某一个开关。2.2.3下拉输入闭合下拉电阻开关断开上拉电阻开关。2.2.4模拟输入关闭该引脚的数字输入输出电路施密特触发器、上下拉电阻、输出驱动全部关闭把外部连续变化的模拟电压直接送入 ADC 模数转换模块用来采集电压信号。以上就是小编本期带来的内容。若有不当之处欢迎指正。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。