Keil MDK 5.40:STM32 工程编译 + 调试完整教程


一、编译前必须检查的3个关键配置(不检查必报错)

在点编译之前,先确认这3项,90%的编译错误都能避免:

1. 勾选生成HEX文件(烧录必备)

  1. 点击工具栏上的魔法棒图标(Options for Target)
  2. 切换到 Output 标签
  3. 勾选 Create HEX File
  4. 建议勾选 Browse Information(方便调试跳转)

2. 芯片型号正确

魔法棒 → Target → 确认芯片与你开发板一致(如STM32F103C8)

3. 头文件路径已添加(最重要)

魔法棒 → C/C++Include Paths

必须把固件库头文件、工程头文件全部加进来,否则报"头文件找不到"。


二、STM32工程编译:3个按钮,一次学会

Keil编译只有3个常用按钮,位置在顶部工具栏:

1. 编译(Build)

快捷键:F7

只编译修改过的文件,速度最快,日常开发用这个。

2. 重新编译全部(Rebuild)

快捷键:Ctrl + F7

全工程重新编译,修改配置/换芯片后必须用这个。

3. 翻译(Translate)

只编译当前打开的文件,快速检查语法错误。


三、编译结果怎么看?

编译信息在底部 Build Output 窗口:

1. 编译成功

显示:

复制代码
0 Error, 0 Warning

复制代码
0 Error, x Warning

警告可以不管,错误必须解决。

2. 常见错误(新手必看)

  • not find xxx.h → 头文件路径没加
  • undefined reference → 缺少.c文件,或函数没定义
  • syntax error → 少分号、括号不匹配
  • stack overflow → 栈空间太小

双击错误信息,自动跳转到出错行,直接修改。


编译成功后,就可以进调试模式了。

调试前准备

  1. 用ST-Link连接开发板:SWD接口(SWDIO + SWCLK + GND + 3.3V)
  2. 开发板供电正常
  3. 驱动已安装(电脑能识别ST-Link)

五、进入调试模式(一步一步)

1. 配置调试器

  1. 点击魔法棒
  2. 切换到 Debug 标签
  3. 右上角选择:
    • ST-Link Debugger(最常用)
    • 或 J-Link
  4. 点击 Settings
  5. SW Device 栏是否显示你的STM32芯片
    ✅ 显示:连接正常
    ❌ 不显示:接线/供电/驱动问题

2. 进入调试模式

点击工具栏 Debug / Start Debug 按钮

快捷键:Ctrl + F5

进入后界面会变:多了寄存器、命令窗口、断点行。


六、调试最常用的6个功能(工作只用到这些)

1. 运行 / 暂停

  • 运行:F5
  • 暂停:Ctrl + Pause

2. 单步执行(逐行跑)

  • F11:单步进入函数(进函数内部)
  • F10:单步跳过函数(不进函数)

3. 断点(最实用)

点击代码行号左边空白处 → 出现红圆点 = 断点

程序运行到这里会自动停下。

4. 查看变量

鼠标直接放在变量上,就能看到当前值。

5. 查看寄存器

菜单:
Peripherals → 选择外设

  • GPIO
  • UART
  • ADC
  • TIM
    ...
    可实时看引脚状态、串口数据。

6. 查看内存数据

View → Watch & Call Stack Window

可以实时监控变量、数组、结构体。


七、退出调试模式

点击调试栏的 Stop 按钮

快捷键:Ctrl + F5

退出后回到正常编辑界面。


相关推荐
-Springer-5 小时前
STM32 学习 —— 个人学习笔记11-1(SPI 通信协议及 W25Q64 简介 & 软件 SPI 读写 W25Q64)
笔记·stm32·学习
yrx0203075 小时前
串口空闲中断+DMA接收+环形缓冲区 && 串口DMA发送+环形缓冲区
stm32·单片机
LCG元6 小时前
STM32实战:基于STM32F103的4G模块(EC20)HTTP通信
stm32·嵌入式硬件·http
送外卖的CV工程师7 小时前
STM32+Makefile编译+OpenOCD 烧录调试
stm32·单片机·嵌入式硬件·makefile·调试·烧录·openocd
豆包公子7 小时前
程序流监控:AUTOSAR CP 功能安全在裸机 MCU 上的实现(理论篇)
运维·单片机·嵌入式硬件·安全·车载系统·autosar
编程之升级打怪8 小时前
单片机SPI硬件接口的要点
嵌入式硬件
Aaron_dw9 小时前
PHY Eye Monitor 全栈技术说明书
嵌入式硬件
NQBJT12 小时前
嵌入式从零开始(第十二篇):调试与工具链 —— 从 IDE 到逻辑分析仪
ide·stm32·单片机·嵌入式硬件·c#
广州灵眸科技有限公司12 小时前
瑞芯微(EASY EAI)RV1126B 网络摄像头方案
开发语言·网络·科技·嵌入式硬件·物联网
豆包公子12 小时前
程序流监控 —— AUTOSAR CP 功能安全在裸机 MCU 上的实现:实践篇
单片机·嵌入式硬件·学习