使用VSCode开发嵌入式开发详细教程——步骤二项目实战

1、打开stm32cubemx,并且创建一个项目,这里不做赘述,配置好之后,切到project manager页面

一定注意tool chain要选择cmake,因为我们后续要用到

然后生成代码,用vscode打开文件夹

打开项目后,点击左下角的生成,生成完毕成功会是和我的输出一致

然后可以切换到clangd的输出信息,查看有没有报错,点开一些代码文件,看看有没有红色波浪号报错的信息

如果没有问题,就进行下一步

运行与调试

第一步:创建调试配置 (launch.json)

当软硬件准备就绪后,需要在项目中创建调试配置文件。

在 VSCode 里打开你的项目文件夹。

点击左侧的 "运行和调试" 图标 (或按快捷键 Ctrl+Shift+D)。

点击 "创建 launch.json 文件",在弹出的选择环境列表中,选择 Cortex-Debug。

VSCode 会自动生成一个== .vscode/launch.json== 文件。你需要用以下内容进行配置。其中大部分是固定字段,你只需重点关注并修改注释 // 请修改为你的实际值 对应的几项。

bash 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug with OpenOCD",        // 配置名称,可自定义
            "type": "cortex-debug",             // 调试器类型,固定为cortex-debug
            "request": "launch",                // 请求类型,固定为launch
            "servertype": "openocd",            // 后端服务器类型,使用OpenOCD
            "cwd": "${workspaceFolder}",        // 调试器工作目录,项目根目录
            "executable": "${workspaceFolder}/build/Debug/YOUR_PROJECT_NAME.elf", // 请修改:指向你的.elf文件路径[reference:8]
            "device": "STM32F407ZG",            // 请修改:填入你的具体芯片型号
            "configFiles": [                    // OpenOCD配置文件
                "interface/stlink.cfg",         // 请修改:根据你的调试器选择,如stlink-v2.cfg, jlink.cfg等[reference:9]
                "target/stm32f4x.cfg"          // 请修改:根据你的芯片系列选择,如stm32f1x.cfg[reference:10]
            ],
            "svdFile": "${workspaceFolder}/YOUR_CHIP.svd", // 可选:SVD文件路径,用于查看外设寄存器值
            "gdbPath": "arm-none-eabi-gdb",     // GDB客户端路径,通常已在PATH中
            "runToEntryPoint": "main"           // 启动后自动在main函数入口处停下
        }
    ]
}

需要你手动修改的地方

executable: 这是最重要的路径,请务必指向 CMake 编译生成的 .elf 文件,不是 .bin 或 .hex 文件。路径通常是 ${workspaceFolder}/build/Debug/你的项目名.elf。

device: 替换为你的芯片型号,例如 STM32F103C8 或 STM32F407ZG。

configFiles: OpenOCD 的配置文件。这些文件位于你安装的 OpenOCD 目录下的 scripts/ 文件夹里。

调试器配置 (interface/):根据你使用的调试器选择,例如 stlink-v2.cfg, jlink.cfg, cmsis-dap.cfg 等。

目标芯片配置 (target/):根据你的芯片系列选择,例如 stm32f1x.cfg, stm32f4x.cfg

配置完之后,点击左上角的绿色三角即可开启调试功能。

如果输出有任何报错,请把报错信息完整的发给deepseek

相关推荐
恒锐丰科技林技术员1 小时前
EG2181D 半桥栅极驱动芯片详解:高压 MOS/IGBT 驱动实用器件
经验分享·嵌入式硬件·硬件工程
国科安芯1 小时前
面向卫星测控应答机的抗辐射MCU信号采集与定时控制研究
单片机·嵌入式硬件·mcu·架构·卫星·商业航天·抗辐射
新晨单片机设计2 小时前
S010A-基于STM32单片机水温控制系统(数码管显示)【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件
事界见闻2 小时前
高性能电机控制MCU选型对比:精度、功耗与实时性如何兼得?
单片机·嵌入式硬件
Brilliantwxx3 小时前
【STM32】 初认识USART串口
linux·stm32·单片机·嵌入式硬件·架构
分享资料4 小时前
用小电容消除高频信号的原因
嵌入式硬件·硬件工程
沐欣工作室_lvyiyi4 小时前
基于STM32的人脸识别门禁系统的设计与实现(论文+源码)
stm32·单片机·嵌入式硬件
zcmodeltech8 小时前
智慧矿山沙盘模型多场景控制系统设计——基于STM32与Modbus RTU的智能开采、无人矿卡、数字孪生全场景联动方案
数据库·stm32·单片机·嵌入式硬件·物联网
国科安芯8 小时前
抗辐射MCU在低轨卫星电源管理单元中的电压监测与保护策略研究
大数据·单片机·嵌入式硬件·电源管理·低轨卫星·抗辐射·星间链路
分享资料9 小时前
去耦电容和旁路电容的区别
嵌入式硬件·硬件工程