gpio完整速查卡

GPIO完整速查卡(标准库 F103)

一、八大模式

模式 名称 典型场景
GPIO_Mode_AF_PP 复用推挽输出 UART/SPI/PWM/CAN
GPIO_Mode_AF_OD 复用开漏输出 I2C(需外部上拉)
GPIO_Mode_Out_PP 推挽输出 LED/蜂鸣器/CS/继电器/MOSFET
GPIO_Mode_Out_OD 开漏输出 电平转换(需上拉)
GPIO_Mode_IN_FLOATING 浮空输入 UART_RX/外部确定电平信号
GPIO_Mode_IPU 上拉输入 按键(低有效)
GPIO_Mode_IPD 下拉输入 按键(高有效)
GPIO_Mode_AIN 模拟输入 ADC/DAC

二、各协议/外设配置

功能 引脚 模式 初始电平
UART TX AF_PP 不涉及
RX IN_FLOATING 不涉及
SPI(主机) SCK/MOSI/MISO AF_PP 不涉及
CS Out_PP Bit_SET(无效态)
SPI(从机) SCK/MOSI IN_FLOATING 不涉及
MISO AF_PP 不涉及
I2C SCL/SDA AF_OD + 上拉 不涉及
CAN TX/RX AF_PP 不涉及
PWM 输出 AF_PP 不涉及(由定时器控制)
ADC 输入 AIN 不涉及
MOSFET 栅极 Out_PP Bit_RESET(默认关断)
继电器 控制 Out_PP Bit_RESET(默认断开)
LED(低有效) 输出 Out_PP Bit_SET(默认熄灭)
LED(高有效) 输出 Out_PP Bit_RESET(默认熄灭)
按键(低有效) 输入 IPU 不涉及
按键(高有效) 输入 IPD 不涉及

三、操作模板

c 复制代码
// 通用初始化步骤
GPIO_InitTypeDef gpio;

// 1. 时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

// 2. 输出类:先设电平
GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);  // 或 Bit_SET

// 3. 再初始化
gpio.GPIO_Pin = GPIO_Pin_0;
gpio.GPIO_Mode = GPIO_Mode_Out_PP;  // 根据场景改模式
gpio.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &gpio);

// 读写
GPIO_SetBits(GPIOA, GPIO_Pin_0);     // 高
GPIO_ResetBits(GPIOA, GPIO_Pin_0);   // 低
uint8_t val = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0);

四、低功耗关键

  • 配置顺序:先设ODR电平 → 再Init(避免配置过程毛刺)
  • 输出模式:电平必须与外部电路一致,否则漏电
  • 输入模式:禁止浮空(IN_FLOATING),用IPU/IPD或外部上拉/下拉
  • 未用引脚:配成IPUIPD(推挽输出也可能漏电)

五、速记口诀

输出设电平,输入防悬空,模拟只AIN,开漏仅I2C,MOS/继电先关断。

相关推荐
zcmodeltech19 分钟前
垃圾发电厂沙盘模型控制系统设计与实现:多设备协同联动方案
java·大数据·数据库·人工智能·stm32·嵌入式硬件·制造
゛凌乱的记忆づ1 小时前
50元从零到成品:一套AI辅助的嵌入式实战入门教程——中断篇
单片机·嵌入式硬件
影寂ldy2 小时前
C# UDP+串口Modbus转发网关
单片机·网络协议·udp
HUI-4743 小时前
EG1188|SOP‑8 高压非隔离降压 PWM 控制器,小功率辅助电源高性价比方案
嵌入式硬件·硬件工程
fox081512 小时前
栈空间带来的大问题
单片机·嵌入式硬件
wuyk55513 小时前
从零吃透Modbus通信|第3章:STM32 Modbus RTU主机
服务器·开发语言·网络·数据结构·stm32·单片机·嵌入式硬件
恒锐丰小瑞14 小时前
率能SS6285L 18V/5A/单通道直流电机驱动IC,超低导通电阻(58mΩ)与多重保护,用于电子锁/玩具/机器人
单片机·嵌入式硬件·机器人
天空'之城15 小时前
单片机基础核心知识点汇总(二十)
单片机·嵌入式硬件
笨笨饿15 小时前
#121_图传中的H.364编码与MP4的联系
linux·运维·前端·单片机·嵌入式硬件·面试·职场和发展