【发布时间】:2022-01-05 10:16:15
【问题描述】:
当我在我的 STM32 项目上编程时,VSCode 不断在代码#include "main.h" 下划线,原因如下:
#include 检测到错误。请更新您的 includePath。此翻译单元禁用曲线。 无法打开源文件“stm32f1xx.h”(依赖于“main.h”)
但是,我仔细检查了我的c_cpp_properties.json,没有发现任何问题。同时,VSCode给了我快速修复的方法,在includePath参数中添加${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F1xx/Include,同样无效。
以下是我的配置。
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"USE_HAL_DRIVER",
"STM32F103xE"
],
"cStandard": "c17",
"cppStandard": "c++17",
"compilerPath": "C:\\Program Files (x86)\\GNU Arm Embedded Toolchain\\10 2021.07\\bin\\arm-none-eabi-gcc.exe",
"intelliSenseMode": "gcc-arm"
},
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"USE_HAL_DRIVER",
"STM32F103xE"
],
"cStandard": "c17",
"cppStandard": "c++17",
"compilerPath": "/opt/ARM/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gcc",
"intelliSenseMode": "gcc-arm"
}
],
"version": 4
}
并且需要的文件/Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h确实存在并且使用make的编译也可以正确完成。
我多次检查文件,但没有发现任何问题,如下所示:
【问题讨论】:
-
在哪种配置下需要该路径,Win32 还是 Linux?
/Drivers/...看起来像 Linux,这是完整路径吗 -
/Drivers/...表示项目文件夹下的Drivers文件夹,例如STM32Project/Drivers/... -
嗨,Futurime,首先你在文件资源管理器中看到那个文件吗?我的意思是
main.h? -
.. 和那个 Drivers 文件夹的相同问题 :) 我认为你在 Cube IDE 或其他东西中创建了项目,然后没有标记检查将必要的文件复制到文件夹,所以现在你从另一个使用它们磁盘本地化。
-
我确实标记了复选框以复制文件。我发布了 VSCode 的屏幕截图,其中包含了必要的文件。
标签: c visual-studio-code vscode-settings stm32