解决VSCODE编辑Keil工程报宏定义错误

彻底解决VSCODE编辑Keil工程报宏定义错误

现象

在通过右键打开Keil工程文件夹编辑底层驱动的过程中,诸如uint32_t之类的宏定义总是被报错.

解决方案

方案2试了很多次时好时坏,现在推荐方案一,直接强制include头文件.
恼人的误报再也没有了
更建议写入C/C++扩展全局默认define中

  • 方案1
    直接将ARMCC的头文件强制包含

修改文件

  • .vscode/c_cpp_properties.json
    增加 代码段中箭头所指部分
{
    "configurations": [
        {
            "name": "Win32",
->        "forcedInclude": [
->           "C:/Keil_v5/ARM/ARMCC/include/stdint.h"
->       ],
          "includePath": [
             "${workspaceFolder}/**",
              "C:/Keil_v5/ARM/Pack/ARM/CMSIS/5.7.0/CMSIS/**"
          ],
            "defines": [
                "__CC_ARM",
                "_DEBUG",
                "UNICODE",
                "_UNICODE",
                "__IO"
            ],
            "compilerPath": "C:\\mingw64\\bin\\gcc.exe",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}
  • 方案2

修改文件

  • .vscode/c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Win32",
->          "includePath": [
->             "${workspaceFolder}/**",
->              "C:/Keil_v5/ARM/Pack/ARM/CMSIS/5.7.0/CMSIS/**"
->          ],
            "defines": [
                "__CC_ARM",
                "_DEBUG",
                "UNICODE",
                "_UNICODE",
                "__IO"
            ],
            "compilerPath": "C:\\mingw64\\bin\\gcc.exe",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

代码段中箭头所指部分

增加下列这句使得ccore_cmXX.h可以被引用到
"C:/Keil_v5/ARM/Pack/ARM/CMSIS/5.7.0/CMSIS/**"

补充

另外,建议参考下面文章,将改动保存以便调用
增加工程配置文件

原因

很多Keil工程不会带这些core相关的文件而是交给cmsis - Pack来处理.
插件市场里目前只有PlatformIDE和cmsis有关.
所以干脆就借用Keil的cmsis库好了.

你可能感兴趣的:(嵌入式,嵌入式,vscode,arm,repo)