欢迎关注 youcans@xidian【嵌入式软件AI编程】专栏
【嵌入式软件AI编程】03. STM32 VS Code 开发环境与工具链
本专栏结合STM32项目实践,介绍嵌入式软件AI编程的实战路径。本专栏内容来自图书《嵌入式系统AI编程》,即将出版。
1.3.3 使用VS Code调试STM32程序
上一小节完成了LED闪烁程序的编写、编译和烧录。本小节介绍如何通过断点、单步执行和变量查看,观察程序执行过程并定位可能出现的问题。
启动调试
确认开发板已经通过ST-LINK接口连接到计算机,并且工程已经成功编译。在VS Code左侧活动栏中单击"运行和调试"图标打开调试界面,然后单击"运行和调试"按钮启动调试。
进入调试状态后,编辑器上方会出现调试工具栏,左侧调试面板中会显示变量、监视、调用堆栈和断点等调试信息。
设置断点
断点可以理解为程序中的"暂停标记"。程序运行到断点所在行时会暂时停止,开发者可以借此观察程序当前执行到哪里,以及相关变量和外设状态。
打开Core/Src/main.c文件,找到LED翻转语句所在的位置。在HAL_GPIO_TogglePin()所在行左侧的空白区域单击,出现红色圆点即表示断点设置成功,如图1-11所示。再次单击红色圆点即可取消断点。
设置断点后,按下F5继续运行程序。程序执行到断点所在行时会自动暂停,编辑器中该行代码会高亮显示,表示程序已经停在当前位置。

图1-11 在VS Code中设置断点
单步执行与继续运行
程序暂停后,可以使用调试工具栏或快捷键控制程序执行。在VS Code中调试STM32程序的常用快捷键如表1-1所示。
表1-1 在VS Code中调试STM32程序的常用快捷键
| 操作 | 快捷键 | 作用 |
|---|---|---|
| 继续运行 | F5 | 程序继续执行,直到遇到下一个断点 |
| 单步跳过 | F10 | 执行当前语句,然后停在下一条语句 |
| 单步进入 | F11 | 进入当前函数内部继续调试 |
| 停止调试 | Shift+F5 | 结束当前调试会话 |
对于本节示例,当程序停在LED翻转语句HAL_GPIO_TogglePin()这一行时,VS Code会用黄色背景或箭头标出当前语句。需要注意的是,该语句此时尚未执行。
- 按下F10,程序会执行当前行的语句,切换LD2的输出状态,然后停在下一行"HAL_Delay(500);"处。再次按下F10,会继续执行延时语句。
- 按下F5后,程序恢复连续运行。由于前面设置了断点,程序下一次执行到LED翻转语句时,会再次暂停在断点位置。
如果希望程序连续运行而不再暂停,可以单击红色圆点取消断点,再按下F5,程序将连续运行,开发板上的LD2指示灯恢复周期性闪烁。按下Shift+F5,结束当前调试。
查看变量
当前的LED闪烁程序中没有需要观察的变量。为了演示查看变量功能,可以增加一个计数变量,记录主循环的执行次数。
在main()函数开头的用户代码区域声明变量:
c
/* USER CODE BEGIN 1 */
uint32_t count = 0;
/* USER CODE END 1 */
然后在"while(1)"主循环中增加count++语句:
c
while(1)
{
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
count++;
HAL_Delay(500);
}
/* USER CODE END 3 */
修改完成后,保存文件并重新编译工程。编译成功后,再次启动调试,并在"count++;"这一行设置断点,程序运行到该断点会暂停。如图1-12所示,可以在左侧"变量(Variables)"区域查看当前作用域中的局部变量,也可以在"监视(Watch)"区域手动添加观察变量。

图1-12 在VS Code中查看变量
添加观察变量的方法如下:将鼠标移动到Watch区域,单击右侧的"+"按钮,在输入框中输入count,然后按回车确认。添加成功后,Watch区域会显示count的当前值。
每次按下F5,程序继续运行到下一次断点处时,Watch区域中count的值都会更新。通过这种方式,可以观察主循环执行次数的变化,理解程序运行过程与变量变化之间的关系。
需要说明的是,普通Watch通常在程序暂停时显示变量值,适合配合断点和单步调试使用。实时变量观察需要进一步使用Live Watch功能,将在后续介绍。
停止调试并确认结果
完成调试后,可以单击顶部调试工具栏中的"停止"按钮,或使用快捷键Shift+F5结束调试。停止调试后,顶部调试工具栏消失,VS Code返回普通编辑状态。
如果希望开发板继续独立运行程序,可以按下开发板上的RESET按钮重启。由于程序已烧录到开发板中,LD2指示灯会继续按设定间隔闪烁。
至此,读者已经完成了在VS Code中调试STM32程序的基本操作,包括启动调试、设置断点、单步执行、查看变量和停止调试。这些功能已经能够满足多数基础实验的调试需要。后续遇到程序运行异常时,可以先在关键代码处设置断点,再通过单步执行和变量查看逐步定位问题。
本章小结
STM32 VS Code开发环境凭借其开放、透明和高度可扩展的特性,为AI协作参与STM32开发奠定了坚实的工具基础。
本章介绍了AI编程时代嵌入式软件开发范式的变化,完成了STM32 VS Code开发环境的搭建,并通过第一个STM32工程验证了工程创建、代码编写、编译烧录和在线调试的基本流程。下一章将正式引入AI编程协作工具Claude Code,开启AI协同开发STM32程序的全新路径。
版权声明:
欢迎关注 youcans@xidian【嵌入式软件AI编程】专栏
转发必须注明原文链接:
【嵌入式软件AI编程】09. 使用VS Code调试STM32程序
Copyright by ai4mcu@qq.com
Crated:2026-09