STM32F407 (Cortex-M4) 與 STM32F103 (Cortex-M3) **內核不同、外設寄存器映射不同、時鐘樹不同**,F1 的標準外設庫 (StdPeriph) **完全不能** 在 F4 上使用,直接編譯會報錯 (寄存器名稱、結構體定義不匹配)。
// 假設 LED 接在 PB5
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIO_B, &GPIO_InitStruct);
// 點亮
HAL_GPIO_WritePin(GPIO_B, GPIO_PIN_5, GPIO_PIN_SET);
// 熄滅
HAL_GPIO_WritePin(GPIO_B, GPIO_PIN_5, GPIO_PIN_RESET);