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

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.lryc.cn/news/2393264.html

相关文章:

  • 嵌入式鸿蒙系统中水平和垂直以及图片调用方法
  • 【海康USB相机被HALCON助手连接过后,MVS显示无法连接故障。】
  • 面试大厂Java:从Spring Boot到微服务架构
  • 2025年电气工程与轨道交通国际会议:绿色能源与智能交通的创新之路
  • macOS 安装 Grafana + Prometheus + Node Exporter
  • WPF log4net用法
  • 数字孪生数据监控如何提升汽车零部件工厂产品质量
  • web自动化-Selenium、Playwright、Robot Framework等自动化框架使用场景优劣对比
  • 使用 Akamai 分布式云与 CDN 保障视频供稿传输安全
  • vue发版html 生成打包到docker镜像进行发版
  • python uv包管理器使用
  • 贪心算法实战3
  • linux、docker、git相关操作
  • 实测,大模型谁更懂数据可视化?
  • 小程序32-简易双向数据绑定
  • jenkins报错java.lang.OutOfMemoryError: Java heap space
  • leetcode669.修剪二叉搜索树:递归法利用有序性精准剪枝
  • Spring Boot 中 @RequestParam 和 @RequestPart 的区别详解(含实际项目案例)
  • Linux入门(十一)进程管理
  • 【课堂笔记】EM算法
  • 怎样将win11+ubuntu双系统的ubuntu从机械硬盘迁移至固态硬盘(1)
  • el-table设置自定义css
  • Compose中导航跳转的实现NavHost
  • VSCode/Cursor中Red Hat Dependency Analytics扩展的自动依赖注入files:分析
  • 【技能篇】RabbitMQ消息中间件面试专题
  • Linux研学-环境搭建
  • Ubuntu系统下可执行文件在桌面单击运行教程
  • Linux之文件进程间通信信号
  • shell脚本打包成可以在麒麟桌面操作系统上使用的deb包
  • 代码随想录算法训练营 Day61 图论ⅩⅠ Floyd A※ 最短路径算法