STM32HAL库开发笔记-GPIO输入

目录

一,配置GPIO的输入​

[二,STM32 GPIO 输入输出模式总结](#二,STM32 GPIO 输入输出模式总结)

[一、输入模式(4 种:核心是 "检测外部电平")](#一、输入模式(4 种:核心是 “检测外部电平”))

[二、输出模式(2 种:核心是 "向外输出电平")](#二、输出模式(2 种:核心是 “向外输出电平”))

[三、复用功能模式(2 种:核心是 "交给外设控制")](#三、复用功能模式(2 种:核心是 “交给外设控制”))

四、模拟模式(特殊:非数字信号)

五、核心总结与选型速记


一,配置GPIO的输入

按照自己的板子的实际情况选择引脚配置

这里在gpio.c里面可以看到也已经自动生成好了

关于GPIO读取引脚电平的函数也是有支持的

在主函数写一个简单的电平读取并在LED输出电平的代码


二,STM32 GPIO 输入输出模式总结

STM32 的 GPIO(通用输入输出口)模式可分为输入模式、输出模式、复用功能模式、模拟模式四大类,核心是根据 "引脚要检测信号、输出信号,还是作为外设专用引脚 / 模拟信号通道" 来选择,下面用通俗的方式讲清每种模式的特点、用途和选型逻辑:

1、输入模式(4 种:核心是 "检测外部电平")

输入模式下,GPIO 引脚仅负责采集外部电平信号,不向外输出电流,核心分 4 种:

模式类型 核心原理 关键特点 典型用途
浮空输入 引脚悬空时电平不确定(受电磁干扰),仅在外部有电平驱动时能检测信号 高阻态,无默认电平 USART/RX 引脚、红外接收等(外部有明确信号源)
上拉输入 内部集成上拉电阻(几十 kΩ),引脚悬空时默认高电平,外部低电平可拉低 有默认高电平,抗干扰性好 按键检测(按下接地为低,松开为高)、传感器状态检测
下拉输入 内部集成下拉电阻,引脚悬空时默认低电平,外部高电平可拉高 有默认低电平,抗干扰性好 需默认低电平的状态检测(如高电平有效的传感器)
模拟输入 引脚与数字电路完全断开,直接连接模拟电路(如 ADC) 不参与数字逻辑,仅传模拟信号 ADC 电压采样、温度传感器模拟信号输入

选型小技巧:有默认电平需求选上拉 / 下拉,外部信号明确选浮空,要采模拟信号选模拟输入。

2、输出模式(2 种:核心是 "向外输出电平")

输出模式下,GPIO 引脚负责主动输出高低电平 ,核心分推挽和开漏,且都可配置输出速度(低速 / 中速 / 高速 / 超高速,对应不同驱动能力和电磁干扰):

模式类型 核心原理 关键特点 典型用途
推挽输出 内部有上下两个 MOS 管,一个导通一个截止:输出高电平时上管导通拉电流,输出低电平时下管导通灌电流 能主动输出高 / 低电平,驱动能力强(可直接带 LED、小型继电器) LED 灯控制、普通电平信号输出、电机驱动信号
开漏输出 内部只有下拉 MOS 管,无上限管:输出低电平时管子导通拉低电平,输出高电平时管子截止(需外部上拉电阻才会有高电平) 支持 "线与"(多个开漏引脚接一起,一个低电平则总线低);可实现 3.3V/5V 电平兼容(外部接 5V 上拉即可输出 5V) I2C 总线 SDA/SCL 引脚、CAN 总线、多设备共享总线

选型小技巧:普通电平输出选推挽,总线通信(如 I2C)或需要电平转换选开漏。

3、复用功能模式(2 种:核心是 "交给外设控制")

当 GPIO 需要作为外设的专用引脚(如串口 TX/RX、SPI MOSI、TIM PWM)时使用,引脚的控制权从 CPU 交给外设,本质是 "外设的输入输出":

模式类型 适用场景 典型例子
复用推挽 外设需要主动输出高 / 低电平(如发送信号) USART TX 引脚、SPI MOSI 引脚、TIM PWM 输出
复用开漏 外设需要线与功能或电平兼容 I2C 的 SDA/SCL 引脚、部分串口 RX 引脚

4、模拟模式(特殊:非数字信号)

和 "模拟输入" 不同,模拟模式是 GPIO 引脚完全脱离数字电路,既不检测数字电平,也不输出数字信号,仅作为模拟信号的通道,比如:

  • ADC 的输入通道(采集模拟电压);
  • DAC 的输出通道(输出模拟电压);
  • 比较器的输入引脚。

5、核心总结与选型速记

  1. 输入选什么?:按键 / 传感器→上拉 / 下拉;串口 RX→浮空;ADC 采样→模拟输入。
  2. 输出选什么?:LED / 普通信号→推挽;I2C/CAN→开漏(需外部上拉)。
  3. 外设引脚选什么?:看外设手册(如串口 TX 用复用推挽,I2C 用复用开漏)。
  4. 速度怎么选?:LED→低速,串口→中速,SPI→高速,高速外设→超高速(速度越高,EMI 越大,按需选择即可)。
相关推荐
中屹指纹浏览器15 小时前
2026浏览器多开环境深度优化:虚拟指纹一致性与风控协同优化方案
经验分享·笔记
stars-he15 小时前
基于 Design Compiler 的 UDP Payload 追加控制模块综合与门级后仿真
笔记·fpga开发·udp
之歆15 小时前
Day05_CSS完整博客笔记(下)
前端·css·笔记
ACP广源盛1392462567315 小时前
ASW3742@ACP# 产品规格详解
网络·人工智能·嵌入式硬件·计算机外设·电脑
泽克15 小时前
3.6 消防工程施工技术
笔记
llilian_1615 小时前
晶体频率测试仪 破解晶振品控核心难题:晶体频率网络测试仪深度解析 晶体网络分析仪
网络·功能测试·单片机·嵌入式硬件·测试工具·51单片机
handler0115 小时前
算法:图的基本概念
c语言·开发语言·c++·笔记·算法·图论
之歆15 小时前
Day05_CSS完整博客笔记(上)
前端·css·笔记
YJlio15 小时前
《Windows Internals》10.5.1 ETW 概述:看懂 Windows 的“事件高速公路”
java·windows·笔记·stm32·嵌入式硬件·学习·eclipse
平凡灵感码头15 小时前
(方案优化师第 1 期) 旺仔牛奶音响
单片机·嵌入式硬件