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

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


相关推荐
czy87874752 小时前
vscode编译make命令要修改stm32cubemx生成的STM32F103XX_FLASH.ld文件
ide·vscode·stm32
三易串口屏3 小时前
实验20 自动灭火场景实验
嵌入式硬件·串口屏·三易串口屏·uart 通信
蒸蛋一级爱好者4 小时前
TFTP协议
单片机·嵌入式硬件
优信电子4 小时前
STM32/C51驱动 DHTC11 温湿度传感器
stm32·单片机·嵌入式硬件·c51·温湿度传感器·dhtc11·环境测量
QiLinkOS5 小时前
【从实验室到商业战场:发明专利如何重塑科技与企业的共生生态】
大数据·c语言·数据结构·c++·人工智能·单片机·算法
周周记笔记5 小时前
【元器件专题】三极管-如果B极给一个方波信号,那么V0输出也可以设计为一个方波信号
单片机·嵌入式硬件
潜创微科技5 小时前
IT68353:DP 1.4 + HDMI 2.0 + USB-C 三合一转 HDMI 2.0 单芯片KVM切换方案
嵌入式硬件·音视频
HPT_Lt6 小时前
ZCC10012支持100V/1.2A 超低静态电流同步降压转换器 兼容LM5164
单片机·嵌入式硬件
Industio_触觉智能6 小时前
瑞芯微RK3576车载智能场景之ADAS+DMS+NVR
嵌入式硬件·dms·adas·nvr·rk3576·车载智能
2zcode6 小时前
基于STM32的多功能万年历电子闹钟设计与实现
stm32·单片机·嵌入式硬件