F407IGT6 有 140 个 IO,分 GPIOA~GPIOI 共 10 组(I 组只有 12 个)。
5V 兼容:带 FT 标志的 IO 兼容 5V,可直连 5V 外设(模拟输入模式除外)。

GPIO 八种工作模式:
| 模式 | 典型应用 |
|---|---|
| 输入浮空 | 按键检测(外部已上下拉) |
| 输入上拉 | 按键检测(无外部电阻) |
| 输入下拉 | 外接高电平有效信号 |
| 模拟 | ADC 输入 |
| 开漏输出 | I2C 总线 |
| 推挽输出 | LED、蜂鸣器、普通 IO |
| 开漏式复用 | I2C、SPI 等外设 |
| 推挽式复用 | USART、SPI 等外设 |
每种模式由 MODER(模式)、OTYPER(输出类型)、OSPEEDR(速度)、PUPDR(上下拉)、IDR(输入数据)、ODR(输出数据)、BSRR(位设置/复位)等寄存器组合实现。
GPIO 内部结构从引脚看进去:

GPIOA->BSRR = GPIO_PIN_5; 原子地把 PA5 拉高,且不影响其他 IO。DMF407 LED 电路:
LED 串联电阻 ~ 510Ω,限流 ~ 5 mA。
__HAL_RCC_GPIOF_CLK_ENABLE();HAL_GPIO_Init(GPIOF, &gpio_struct);
LED_Init:
GPIO_InitTypeDef gpio = {0};
__HAL_RCC_GPIOF_CLK_ENABLE();
gpio.Pin = GPIO_PIN_9 | GPIO_PIN_10;
gpio.Mode = GPIO_MODE_OUTPUT_PP;
gpio.Pull = GPIO_NOPULL;
gpio.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOF, &gpio);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9 | GPIO_PIN_10, GPIO_PIN_SET); // 默认灭
main:
while (1) {
LED0_TOGGLE(); // HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_9);
delay_ms(500);
LED1_TOGGLE();
delay_ms(500);
}

烧录 → 开发板 LED0/LED1 交替闪烁(500ms 周期),看不到闪烁检查:
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, GPIO_PIN_SET);。