在上一篇博客中,我们介绍了这个问题发生的原理,具体参考在VS Code中编辑keil代码时报错:无法打开源文件 “stm32f10x.h“-CSDN博客
但在这篇博客中的解决方式不尽完美,因为keil assistant这个插件会自动更新c_cpp_properties.json文件,导致我们的修改被覆盖,因此,今天给大家介绍一种一劳永逸的改进方式
改进方式
由于keil assistant是通过读取keil工程中的include path来生成c_cpp_properties.json中对应的字段,所以我们只需要显式地在keil中配置从Manage Run-Time Environment引入的头文件即可。

①框内是编译器的参数,以我的为例是这样的
--c99 --gnu -c --cpu Cortex-M3 -g -O0 --apcs=interwork --split_sections -I ./Hardware -I ./User -I C:/Keil_v5/ARM/PACK/ARM/CMSIS/5.6.0/CMSIS/Core/Include -I C:/Keil_v5/ARM/PACK/Keil/STM32F1xx_DFP/2.3.0/Device/Include
-I./RTE/Device/STM32F103RB
-I./RTE/_Target_1
-IC:/Keil_v5/ARM/PACK/ARM/CMSIS/5.6.0/CMSIS/Core/Include
-IC:/Keil_v5/ARM/PACK/Keil/STM32F1xx_DFP/2.3.0/Device/Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F10X_MD
-o .\Objects\*.o --omf_browse .\Objects\*.crf --depend .\Objects\*.d
其中,-I后面指定了include path,我们将这些显式地添加到②框内,这样keil assistant插件就会读取到这些,并生成包含这些路径的c_cpp_properties.json文件,这样就一劳永逸地解决了这个问题
833

被折叠的 条评论
为什么被折叠?



