当前位置: 首页 > 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,我可以给出详细操作步骤。

相关文章:

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

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

嵌入式鸿蒙系统中水平和垂直以及图片调用方法

利用openharmony操作的具体现象: 第一:Column 作用:沿垂直方向布局的容器。 第二:常用接口 Column(value?: {space?: string | number}) 参数: 参数名参数类型必填参数描述spacestring | number否纵向布局元素垂直方向间距。 从API version 9开始,space为负数或者ju…...

【海康USB相机被HALCON助手连接过后,MVS显示无法连接故障。】

在Halcon里使用助手调用海康USB相机时,如果这个界面点击了【是】 那么恭喜你,相机只能被HALCON调用使用,使用MVS或者海康开发库,将查找不到相机 解决方式: 右键桌面【此电脑】图标 ->选择【管理】 ->选择【设备…...

面试大厂Java:从Spring Boot到微服务架构

面试大厂Java:从Spring Boot到微服务架构 在一个阳光明媚的下午,谢飞机来到了某知名互联网大厂的面试现场,迎接他的是一位严肃的面试官。 第一轮提问: 面试官: 谢飞机,请你简单介绍一下Spring Boot的核心…...

2025年电气工程与轨道交通国际会议:绿色能源与智能交通的创新之路

2025年电气工程与轨道交通国际会议(ICEERT 2025)是一场电气工程与轨道交通领域的国际盛会,将于2025年在武汉隆重召开。此次会议汇聚了全球顶尖的专家学者和行业精英,共同探讨电气工程与轨道交通的最新研究成果和技术趋势。会议将围…...

macOS 安装 Grafana + Prometheus + Node Exporter

macOS 安装指南:Grafana Prometheus Node Exporter 目录简介🚀 快速开始 安装 Homebrew1. 安装 Homebrew2. 更新 Homebrew 安装 Node Exporter使用 Homebrew 安装验证 Node Exporter 安装 Prometheus使用 Homebrew 安装验证安装 安装 Grafana使用 Home…...

WPF log4net用法

WPF log4net用法 一、在工程中管理NuGet程序包,找到log4net,点击安装,如下图已成功安装; 二、在工程中右键添加新建项,选择应用程序配置文件(后缀为.config),然后设置名称,这里设置…...

数字孪生数据监控如何提升汽车零部件工厂产品质量

一、汽车零部件工厂的质量挑战 汽车零部件作为汽车制造的基础,其质量直接关系到整车的性能、可靠性和安全性。在传统的汽车零部件生产过程中,质量问题往往难以在早期阶段被发现和解决,导致生产效率低下、生产成本上升,甚至影响到…...

web自动化-Selenium、Playwright、Robot Framework等自动化框架使用场景优劣对比

Web 自动化测试框架根据不同的技术栈和应用场景可分为多种类型,以下是常见的框架及其特点、适用场景: 一、主流框架分类 1. Selenium 生态(Python/Java/C#/JavaScript) 核心组件: WebDriver:操作浏览器的…...

使用 Akamai 分布式云与 CDN 保障视频供稿传输安全

作者简介:David Eisenbacher 是 EZDRM 公司的首席执行官兼联合创始人,该公司是首家提供 "DRM 即服务" 的企业。作为 CEO,David 始终秉持为企业确立的使命:为视频服务商提供简洁有效的数字版权管理方案,助力其…...

vue发版html 生成打包到docker镜像进行发版

将Vue项目打包成Docker镜像部署主要分为以下几个步骤: 1. Vue项目打包‌ 执行npm run build生成dist文件夹,包含静态资源文件 注意检查index.html中资源引用路径是否正确(避免绝对路径问题) 2. 编写Dockerfile Copy Code FROM…...

python uv包管理器使用

官方文档&#xff1a;uv官方文档 注&#xff1a;uv安装不依赖python。 使用&#xff1a; python版本管理 # 查看已安装的python列表 uv python list # 安装特定版本 uv python install 3.12 # 指定项目使用的python版本 uv python pin <version># 使用指定版本运行脚本…...

贪心算法实战3

文章目录 前言区间问题跳跃游戏跳跃游戏II用最少数量的箭引爆气球无重叠区间划分字母区间合并区间 最大子序和加油站监控二叉树 前言 今天继续带大家进行贪心算法的实战篇3&#xff0c;本章注意来解答一些运用贪心算法的比较难的问题&#xff0c;大家好好体会&#xff0c;怎么…...

linux、docker、git相关操作

1 linux 1.1解压缩 1.1.1 zip zip xxx.zip file 把file压缩成xxx.zip -r 递归压缩&#xff1a; zip -r example_new.zip 示例集 # 新建压缩包并命名为 example_new.zip zip -r xxx.zip file1 file2 dir1 将多个文件目录压成zip包 unzip file.zip -d target_dir #把file.zip解…...

实测,大模型谁更懂数据可视化?

大家好&#xff0c;我是 Ai 学习的老章 看论文时&#xff0c;经常看到漂亮的图表&#xff0c;很多不知道是用什么工具绘制的&#xff0c;或者很想复刻类似图表。 实测&#xff0c;大模型 LaTeX 公式识别&#xff0c;出乎预料 前文&#xff0c;我用 Kimi、Qwen-3-235B-A22B、…...

小程序32-简易双向数据绑定

在WXML中&#xff0c;普通属性的绑定是单向的&#xff0c;例如:<input value"{{value}}" /> 如果希望用户输入数据的同时改变data中的数据&#xff0c;可以借助简易双向绑定机制。在对应属性之前添加model:前缀即可: 例如<input model:value"{{value}…...

jenkins报错java.lang.OutOfMemoryError: Java heap space

报错信息 2025-05-27 09:17:16.2340000 [id38] WARNING j.u.ErrorLoggingScheduledThreadPoolExecutor#afterExecute: failure in task not wrapped in SafeTimerTask java.lang.OutOfMemoryError: Java heap spaceat java.base/java.lang.StringUTF16.compress(StringUTF16.j…...

leetcode669.修剪二叉搜索树:递归法利用有序性精准剪枝

一、题目深度解析与BST特性应用 题目描述 给定一棵二叉搜索树&#xff08;BST&#xff09;和一个值区间[low, high]&#xff0c;修剪BST使得所有节点的值都落在该区间内。修剪后的树必须保持BST的性质&#xff0c;且不能改变原有节点的相对位置关系。 BST的核心特性应用 二…...

Spring Boot 中 @RequestParam 和 @RequestPart 的区别详解(含实际项目案例)

Spring Boot 中 RequestParam 和 RequestPart 的区别详解&#xff08;含实际项目案例&#xff09; 在日常的 Spring Boot 开发中&#xff0c;我们经常会遇到表单提交、文件上传、JSON 参数绑定等需求。而在处理这类请求时&#xff0c;两个常见的注解——RequestParam 和 Reque…...

Linux入门(十一)进程管理

Linux 中每个执行的程序都称为一个进程&#xff0c;每个进程都分配一个ID号&#xff08;PID&#xff09; 每个进程都可能以两种方式存在&#xff0c;前台&#xff08;屏幕上可以操作的&#xff09;和后台&#xff08;屏幕上无法看到的&#xff09;&#xff0c;一般系统的服务都…...

【课堂笔记】EM算法

文章目录 背景极大似然估计隐变量高斯混合模型EM算法合理性分析相关好文章背景 EM算法(期望最大化算法,Expectation-Maximization Algorithm)是一种迭代优化算法,用于在含有隐变量的概率模型中估计最大似然参数。   这是概括性的定义,下面我会解释其中的名词并用具体例子…...

怎样将win11+ubuntu双系统的ubuntu从机械硬盘迁移至固态硬盘(1)

将 Ubuntu 从机械硬盘迁移到固态硬盘是一个涉及多个步骤的过程。以下是一个基本的迁移指南&#xff1a; 1. 前期准备 1.1 备份数据&#xff1a; 确保你已备份数据&#xff0c;以防止在迁移过程中出现意外导致任何数据丢失。 1.2 固态硬盘安装&#xff1a; 确保固态硬盘正确…...

el-table设置自定义css

隔行变色、表头颜色 // 设置table字体颜色、背景色 .el-table {color: #ffffff;background-color: transparent !important; }设置隔行变色功能 .el-table__body {tr.el-table__row {&:nth-child(even) {td.el-table__cell {background-color: #08417f;}}&:nth-child(…...

Compose中导航跳转的实现NavHost

文章目录 1、添加依赖2、两个页面导航跳转的实现2.1 定义导航图2.2 创建导航控制器2.3 实现两个页面跳转 2、带参数的导航2.1 定义带参数的路径2.2 定义接收参数2.3 导航到带参数的屏幕 3、关键点 1、添加依赖 // build.gradle dependencies {implementation "androidx.n…...

VSCode/Cursor中Red Hat Dependency Analytics扩展的自动依赖注入files:分析

VSCode/Cursor中Red Hat Dependency Analytics扩展的自动依赖注入files:分析 问题描述 最近在使用VSCode开发时&#xff0c;发现一个令人困扰的问题&#xff1a;每次打开或保存package.json文件时&#xff0c;都会自动添加一个自引用的依赖项。具体表现为&#xff1a; {&quo…...

【技能篇】RabbitMQ消息中间件面试专题

1. RabbitMQ 中的 broker 是指什么&#xff1f;cluster 又是指什么&#xff1f; 2. 什么是元数据&#xff1f;元数据分为哪些类型&#xff1f;包括哪些内容&#xff1f;与 cluster 相关的元数据有哪些&#xff1f;元数据是如何保存的&#xff1f;元数据在 cluster 中是如何分布…...

Linux研学-环境搭建

一 概述 1 Linux 概述 Linux系统由内核、Shell、文件系统、应用程序及系统库等关键部分组成。内核作为核心&#xff0c;管理硬件资源与系统服务&#xff1b;Shell提供用户与系统交互的命令行界面&#xff0c;让用户能便捷执行操作&#xff1b;文件系统负责数据的存储、组织与管…...

Ubuntu系统下可执行文件在桌面单击运行教程

目录 ​编辑 操作环境&#xff1a;这个可执行文件在原目录下还有它的依赖文件 1&#xff0c;方法1&#xff1a;创建启动脚本 操作步骤​&#xff1a; &#xff08;1&#xff09;​​在桌面创建脚本文件​​&#xff08;如 run_main_improve.sh&#xff09;&#xff1a; ​…...

Linux之文件进程间通信信号

Linux之文件&进程间通信&信号 文件文件描述符文件操作重定向缓冲区一切皆文件的理解文件系统磁盘物理结构&块文件系统结构 软硬链接 进程间通信匿名管道命名管道system V共享内存 信号 文件 首先&#xff0c;Linux下一切皆文件。对于大量的文件&#xff0c;自然要…...

shell脚本打包成可以在麒麟桌面操作系统上使用的deb包

以下是将 .sh 的 shell 脚本打包成可以在麒麟桌面操作系统上使用的 .deb 包的详细步骤和分析过程&#xff1a; 准备工作 安装必要的工具&#xff1a;在麒麟桌面操作系统上&#xff0c;需要安装 dh-make 和 devscripts 等工具&#xff0c;这些工具用于生成和构建 Debian 包。打…...