当前位置: 首页 > ai >正文

vscode开发stm32,main.c文件中出现很多报错影响开发解决日志

本质上为
.vscode/c_cpp_properties.json文件和Makefile文件中冲突,两者没有同步。
将makefile文件中的内容同步过来即可,下面给出一个json文件的模板,每个人的情况不同,针对性修改即可

{"configurations": [{"name": "STM32","includePath": ["${workspaceFolder}/Core/Inc","${workspaceFolder}/Drivers/STM32H7xx_HAL_Driver/Inc","${workspaceFolder}/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy","${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32H7xx/Include","${workspaceFolder}/Drivers/CMSIS/Include","/Users/zhy/Tools/xpack-arm-none-eabi-gcc-14.2.1-1.1/arm-none-eabi/include"#修改],"defines": ["USE_PWR_LDO_SUPPLY","USE_HAL_DRIVER","STM32H743xx"#修改],"compilerPath": "/Users/zhy/Tools/xpack-arm-none-eabi-gcc-14.2.1-1.1/bin/arm-none-eabi-gcc",#修改"cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "gcc-arm"}],"version": 4
}

注意整体文件的相对路径,配置好后问题消失
在这里插入图片描述
下面给出一些ai对话过程可以参考

GitHub Copilot
你的情况是:用 make 命令可以编译通过,但在 IDE(比如 VSCode、Keil、STM32CubeIDE 等)里却报错很多。这通常不是代码本身有问题,而是IDE 的代码分析器(IntelliSense、语法检查等)配置不正确,导致它找不到头文件、宏定义等。

主要原因
头文件路径未配置好
IDE 没有正确设置 include 路径,导致找不到如 __IO 这类宏或 HAL 库头文件。

编译器宏未配置好
有些宏(如 STM32F4xx, USE_HAL_DRIVER 等)只在 makefile 里定义了,IDE 没同步这些宏。

IDE 没用 makefile 的配置
你用 make 编译时,makefile 里已经包含了所有正确的路径和宏,但 IDE 的代码分析器用的是自己的配置。

解决办法
同步 include 路径和宏定义到 IDE

如果用 VSCode,检查 .vscode/c_cpp_properties.json,把 makefile 里的 include 路径和宏同步进去。
如果用 STM32CubeIDE,检查 Project Properties → C/C++ General → Paths and Symbols。
如果用 Keil,检查 Options for Target → C/C++ → Include Paths。
让 IDE 使用 makefile(高级)
有些 IDE 支持直接用 makefile 作为工程配置,这样就不会有路径和宏不一致的问题。

忽略 IDE 的假报错
只要 make 能编译通过,说明代码没问题。IDE 的报错只是代码分析器没配置好,不影响实际编译。

总结
make 能编译通过,说明你的代码和 makefile 没问题。
IDE 报错多,99% 是因为 include 路径和宏没同步到 IDE。
只要同步好路径和宏,IDE 报错就会消失。
如需具体同步方法,请告知你用的 IDE,我可以给出详细操作步骤。

http://www.xdnf.cn/news/9246.html

相关文章:

  • 【脚本】一键部署脚本
  • 深入理解设计模式之命令模式
  • 公共场所人脸识别设备备案合规要点
  • [STM32学习笔记(九)]CubeMX项目使用系统定时器SysTick的中断服务函数进行定时
  • AWS之AI服务
  • 《OpenFeign 最佳实践:三大优雅调用远程服务的方式》​
  • 一种C# 的SM4 的 加解密的实现,一般用于医疗或者支付
  • 如何在WordPress网站中添加相册/画廊
  • 【分治】计算右侧小于当前元素的个数
  • Java集合框架详解:List、Set、Map及其实现类
  • 电子信息科学与技术专业生涯规划书-嵌入式方向(大一下)
  • 《计算机组成原理》第 3 章 - 系统总线
  • 微服务难题?Nacos服务发现来救场
  • 向量数据库对比和选择:Pinecone、Chroma、FAISS、Milvus、Weaviate
  • sqli-第三十二关——bypass addslashes
  • 使用redis代替session的登录校验
  • 企业微信内部网页开发流程笔记
  • [Java恶补day8] 3. 无重复字符的最长子串
  • 一起学数据结构和算法(三)| 字符串(线性结构)
  • 零基础远程连接课题组Linux服务器,安装anaconda,配置python环境(换源),在服务器上运行python代码【1/3 适合小白,步骤详细!!!】
  • 在 Vue 2中使用 dhtmlxGantt 7.1.13组件,并解决使用时遇到的问题汇总.“dhtmlx-gantt“: “^7.1.13“,
  • Linux中Java开发、部署和运维常用命令
  • uni-app学习笔记十五-vue3页面生命周期(一)
  • unity实现wasd键控制汽车漫游
  • 国产三维CAD皇冠CAD(CrownCAD)建模教程:汽车电池
  • 洛谷 P3372 【模板】线段树 1
  • android 输入系统
  • 不同电脑同一个网络ip地址一样吗
  • 打卡第38天
  • 数据透视:水安 B 证如何影响水利企业的生存指数?