windows下用VSCODE开发stm32踩的坑

开发所需:

1.vscode:
编写代码
2.STM32cubeMX:
生成带.ld和.s和makefile等工程代码
3.openocd(或者JLink):
调试、下载
4.MinGW(或者mingw64):
编译代码
5.arm-none-eabi-gcc:
交叉编译链

安装:

VSCODE:
VSCODE
STM32CUBEMX:
ST官网有,下载需要先注册
openocd(或者JLink):
openocd
jlink自己网上找资源吧
MinGW(或者mingw64):
MinGW
mingw64资源也自己找吧
arm-none-eabi-gcc:
arm-none-eabi-gcc
下载完成后,按步骤或者百度安装步骤安装,像openocd直接解压就能用,但是需要添加环境变量,其他软件安装完成之后也要添加环境变量,所有添加环境变量的方法都是把安装的软件目录下bin文件夹路径添加到PATH里如下图:
在这里插入图片描述
验证安装完成:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实际使用:

第一个坑:
在这里插入图片描述
创建工程时一定要开启debug,否则编译时应使用make DEBUG=1
第二个坑:
使用OpenOCD时,不能使用JLINK自带的驱动,而是要把JLINK设备设置成普通的USB通用设备!如果已经安装了jlink驱动,需要卸载,然后使用libusb或者libusbk生成驱动。否则会报找不到jlink设备错误。
所以推荐使用JLink自带的GDB调试。

<think>好的,我需要回答用户关于如何在VSCode开发STM32的问题。首先,用户之前问过关于定时器中断的问题,现在可能是在那个项目的基础上扩展,或者刚开始接触STM32开发。用户可能已经有一定的嵌入式开发基础,但不太熟悉VSCode的环境配置。 首先,我需要确定用户的操作系统,但用户没有说明,所以得涵盖WindowsLinux的情况。然后,VSCode开发STM32通常需要几个关键组件:工具链、调试器、插件等。常见的工具链有ARM GCC调试器如ST-Link,插件如Cortex-Debug。 接下来,可能需要介绍安装步骤,包括安装ARM工具链,VSCode插件,配置环境变量。然后,创建项目部分,可以使用STM32CubeMX生成代码框架,再导入到VSCode中。这里需要说明如何用CubeMX生成代码,并整合到VSCode项目里。 编译调试部分,需要指导用户如何配置tasks.json和launch.json,特别是针对STM32的配置。可能还需要提到OpenOCD的使用,用于连接调试器。用户可能会遇到常见问题,比如驱动安装、路径设置错误,需要给出排查建议。 另外,用户可能关心如何高效开发,所以推荐一些有用的插件,比如C/C++ IntelliSense,以及代码自动补全工具。同时,提醒用户注意依赖库的包含路径,避免编译错误。 需要确保步骤清晰,分点列出,避免信息过载。可能用户是新手,所以语言要简洁,避免专业术语过多,或者在必要时解释术语。例如,解释什么是OpenOCD,为什么需要它。 最后,检查是否有遗漏的步骤,比如烧录程序到开发板,或者实时调试的技巧。可能还需要提到使用ST-Link Utility或者STM32CubeProgrammer作为替代工具,但重点放在VSCode本身的配置上。 总结下来,结构应该是:环境准备→工具安装→项目创建→编译调试→插件推荐→常见问题。每个部分给出具体的命令和示例,确保用户能一步步操作。同时,注意用户可能的痛点,比如环境变量设置、调试配置文件的编写,这些地方需要详细说明。</think>在 VSCode开发 STM32 的完整流程可分为以下步骤,以 **Windows/Linux 通用方案**为例: --- ### 一、环境搭建 1. **安装必要工具** - **ARM 工具链**:下载 [ARM GNU Toolchain](https://developer.arm.com/downloads/-/gnu-rm) ```bash # 示例路径(Windows): C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2021.10\bin ``` - **OpenOCD**:调试器驱动 [OpenOCD 下载](https://gnutoolchains.com/arm-eabi/openocd/) - **STM32CubeMX**:代码生成工具 [ST 官网下载](https://www.st.com/en/development-tools/stm32cubemx.html) 2. **VSCode 插件安装** - `C/C++`:代码智能提示 - `Cortex-Debug`:ARM 调试支持 - `STM32 for VSCode`(可选):快速工程管理 --- ### 二、项目创建 1. **生成代码框架** - 用 STM32CubeMX 配置时钟、外设和引脚,生成 **Makefile 项目**(IDE 选 `Makefile`) - 输出路径建议为独立文件夹(如 `MyProject`) 2. **导入 VSCode** - 在 VSCode 中打开项目文件夹 - 配置 `.vscode` 目录下的关键文件: - **`c_cpp_properties.json`**:指定头文件路径 ```json "includePath": [ "${workspaceFolder}/**", "D:/STM32Cube/Repository/STM32Cube_FW_F4_V1.27.1/Drivers/CMSIS/Include" ] ``` --- ### 三、编译与烧录 1. **编译配置**(`tasks.json`) ```json { "label": "Build STM32", "type": "shell", "command": "make", "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": ["$gcc"] } ``` - 按 `Ctrl+Shift+B` 执行编译,生成 `.elf` 和 `.bin` 文件 2. **烧录配置**(使用 OpenOCD + ST-Link) ```json { "name": "STM32 Debug", "type": "cortex-debug", "request": "launch", "servertype": "openocd", "device": "STM32F407VG", // 修改为你的芯片型号 "configFiles": [ "interface/stlink.cfg", "target/stm32f4x.cfg" ] } ``` - 按 `F5` 启动调试,自动烧录程序并进入调试模式 --- ### 四、调试技巧 1. **实时变量监控** - 在 `Watch` 窗口添加变量名(如 `TIM3->CNT`) 2. **外设寄存器查看** - 使用 `Cortex-Debug` 插件的 `SVD` 功能,直接查看外设寄存器状态 3. **串口输出调试** - 结合 `TERMite` 或 `PuTTY` 监听串口输出(波特率需匹配) --- ### 五、高效开发插件推荐 | 插件名称 | 功能 | |----------------------|---------------------------| | `GitLens` | 代码版本管理 | | `Code Runner` | 快速执行脚本 | | `ARM Assembly` | 汇编语法高亮 | | `Todo Tree` | 快速定位代码中的 `//TODO` | --- ### 六、常见问题解决 1. **编译报错 "找不到头文件"** - 检查 `c_cpp_properties.json` 中的 `includePath` 是否包含 CMSIS 和 HAL 库路径 2. **烧录失败 "No ST-Link detected"** - 安装 [ST-Link 驱动](https://www.st.com/en/development-tools/stsw-link009.html) - 重启 OpenOCD 服务:`openocd -f interface/stlink.cfg -f target/stm32f4x.cfg` 3. **代码修改后未生效** - 执行 `make clean` 后重新编译 --- **附:STM32CubeMX 配置关键点** 1. **时钟树配置**:通过图形界面设置 HCLK 频率(如 168MHz for STM32F4) 2. **生成 Makefile**:在 `Project Manager` → `Toolchain/IDE` 中选择 `Makefile` 3. **启用外设**:如 USART、GPIO 等需在 `Pinout & Configuration` 标签中激活 通过以上配置,即可在 VSCode 中实现 **代码编辑→编译→烧录→调试** 的全流程开发
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值