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

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


相关推荐
新晨单片机设计25 分钟前
S014A-基于STM32单片机计算器(LCD1602显示)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus
POMAGTOR31 分钟前
【磁吸 POGOPIN 连接器 汽车医疗机器人弹簧顶针】
嵌入式硬件·机器人·汽车
clear sky .2 小时前
内存8字节对齐是什么?
c语言·stm32·嵌入式硬件
辰域电子2 小时前
STM32项目开源:智能安防与燃气监测系统(代码+原理图+仿真)
stm32·单片机·嵌入式硬件·开源·毕业设计·proteus
服务器硬件项目经理2 小时前
第14篇_服务器主板上MOSFET的三大应用
运维·服务器·人工智能·单片机·硬件工程·硬件
SamChan902 小时前
Python批量处理PDF踩坑实录:中文编码、字体内嵌、多栏排版与内存占用
python·单片机·ai·pdf·机器翻译
HUI-4742 小时前
EG1170|SSOP‑10 外置 MOS 200V 异步降压控制器,快充 / 电池充电大电流降压优选
嵌入式硬件·硬件工程
zcmodeltech2 小时前
能源电力沙盘模型控制系统设计——基于STM32与Modbus RTU的“发—输—变—配—用”全链条动态展示方案
数据库·stm32·单片机·嵌入式硬件·能源
高斯的手稿08012 小时前
丽萨单片机固件升级,裁剪hex文件
单片机·嵌入式硬件
昌原的儿子LEO3 小时前
【单片机入门】UART 串行异步通信核心考点梳理
linux·单片机·51单片机