posts/stm32-dev-environment.md

STM32从零开始:开发环境搭建与第一个工程

STM32 2026-08-31 4 分钟阅读 #STM32#Keil#CubeMX

STM32从零开始:开发环境搭建与第一个工程

很多初学者卡在第一步:环境装了一整天,还是点不亮第一盏 LED。这篇文章把环境搭建和第一个工程的完整流程走一遍。

#一、需要安装的软件

软件作用备注
Keil MDK编译 + 调试主流 IDE,也可用 GCC + VSCode
STM32CubeMX图形化配置外设生成初始化代码
ST-Link 驱动下载程序或用 CH340 串口下载
串口助手串口调试任意一款即可

#二、用 CubeMX 创建工程

打开 STM32CubeMX,按以下步骤操作:

  1. File → New Project,在 MCU 选择器里输入芯片型号(例如 STM32F103C8T6);
  2. 在左侧 System Core → RCC,把 HSE 设为 Crystal/Ceramic Resonator
  3. System Core → SYS,Debug 设为 Serial Wire(启用 SWD 调试);
  4. 找到 PC13 引脚,选择 GPIO_Output(板载 LED);
  5. 左侧 Project Manager 页,Toolchain 选 MDK-ARM
  6. 点击 GENERATE CODE,生成后打开 Keil 工程。

#三、第一个程序:点亮 LED

main.cmain() 里加入:

cHAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);

编译下载后,板载 LED 就亮了。如果想让它闪烁,用 HAL 延时:

cwhile (1) {
    HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
    HAL_Delay(500);
}

#四、常见坑与解决

#1. 编译报错找不到器件

Keil 里没有对应的 Device Pack。打开 Pack Installer,搜索你的芯片型号安装即可。

  • 检查驱动是否安装;
  • 检查 ST-Link 与板子的接线(SWDIO / SWCLK / GND / 3.3V);
  • 在 Keil 的 Options → Debug 里确认选择了 ST-Link 并点击 Settings 能看到目标芯片。

#3. 下载成功但程序不运行

多半是 BOOT0 引脚 拉高了。把 BOOT0 接 GND 再复位一次。

#4. 串口打印乱码

  • 确认波特率与代码中 HAL_UART_Transmit 配置一致;
  • 检查晶振配置:CubeMX 里 HSE 频率要和板子实际晶振一致(常见 8MHz)。

#五、进阶建议

点亮 LED 之后,建议依次挑战:按键中断、串口收发、定时器 PWM、I2C 驱动 OLED。每一步都是后面做项目的基石。