VSCODE编写STM32代码配置

本文介绍了如何在VSCODE中编辑从Keil导出的代码,解决因缺少预处理宏导致的报错问题。关键步骤包括将Keil项目拖入VSCODE,通过添加`c_cpp_properties.json`文件中的`defines`字段来定义预处理宏,并将`intelliSenseMode`设为`gcc-x86`。这有助于在VSCODE中实现与Keil类似的编译环境,提高代码编辑体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VSCODE提供了丰富实用的插件,可以大幅提升编写代码的体验和效率。

下面简单说明如何使用VSCODE编辑Keil中导出的代码(仅编辑),消除恼人的报错,

将上述Keil目录结构拖动到VSCODE打开,

在main函数中,如果不添加2、3行的宏定义,下面的代码会提示找不到定义。但是在Keil中我们确实没有2、3行的宏定义,为什么可以成功编译呢?

原因是在stm32f10x.h头文件中,当定义了“USE_STDPERIPH_DRIVER”宏定义时,便会引入"stm32f10x_conf.h"头文件,

"stm32f10x_conf.h"头文件的内容如下

可见其中引入了常见的固件库头文件,"stm32f10x_gpio.h"与"stm32f10x_rcc.h"赫然在列,

也就是说当我们引入"stm32f10x.h"并且提前定义了“USE_STDPERIPH_DRIVER”宏定义,就不需要再引入“stm32f10x_xxx.h”的固件库头文件,在Keil中是在“C/C++”预处理器设置的“USE_STDPERIPH_DRIVER”宏定义,

在VSCODE中,在"c_cpp_properties.json"中的"defines"字段添加预处理宏即可,另外将"intelliSenseMode"修改为"gcc-x86",至此,使用VSCODE编辑Keil代码,可消除大部分的报错。

 

### 配置和使用 STM32 HAL 库进行嵌入式开发 #### 使用 VSCodeSTM32CubeMX 的组合来设置开发环境 为了在 VSCode配置并使用 STM32 HAL 库进行嵌入式开发,需遵循一系列流程以确保所有组件协同工作。首先,通过 STM32CubeMX 软件完成硬件初始化代码的生成[^1]。 ```bash # 安装必要的工具链如GCC ARM Embedded Toolchain sudo apt-get install gcc-arm-none-eabi ``` 接着,在 STM32CubeMX 中创建新项目时选择目标微控制器型号,并按照需求调整外设配置选项。当所有的参数设定完毕之后,导出项目至指定位置以便后续处理[^3]。 #### 导入项目到 VSCode 并安装扩展 一旦获得了由 CubeMX 产生的源码框架,则可将其导入至 Visual Studio Code 编辑器内继续操作。推荐安装 `STM32 VS Code Extension` 插件用于增强 IDE 功能支持。 ```json // .vscode/settings.json 文件中的部分配置项示例 { "C_Cpp.default.includePath": [ "${workspaceFolder}/**", "/path/to/your/hal/library" ], } ``` 对于编译链接过程而言,应当依据个人喜好决定采用 Makefile 或 CMake 构建系统;两者皆能良好适配于基于 GCC 工具链构建的应用程序之上[^4]。 #### 设置调试功能 为了让开发者能够更高效地排查错误信息,还需额外部署 OpenOCD 或 JLink GDB Server 来实现在线仿真目的。这些服务器允许用户借助 GDB Client (即 VSCode 内置插件) 对运行中的固件实施单步执行、查看寄存器状态等动作。 ```json // launch.json 示例片段 { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/project_name.elf", "miDebuggerServerAddress": "localhost:3333", // 如果使用OpenOCD则应为该端口号 ... } ] } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值