当您必须使用STM32HAL时,您知道,有很多宏,有时您想知道这个宏在哪里实现。在我的示例中,在第40行中,我在标签PROSTE_MAKRO
上使用F12(F12是GoToDefinition(。在我的情况下,这个函数将我引导到第30行,其中定义了宏SRC,而不是我所期望的PROSTE MAKRO。看起来这个VSCode函数GotoDefinition想了很多如何(NOT!(帮助我并将我的宏评估为基本形式。但我在HAL中有一半的代码是宏,我希望gotoDefinition应该通过任何(如果是多个(嵌套定义重定向我。我想要它,这就是IDE的工作原理。
我使用带有Plaftormio和C/C++Microsoft扩展的Visual Studio代码。我已经用我的配置名称、路径等配置了c_cpp_properties.json
文件。我已经从EmbeddedGeek yt视频中制作了所有工具链,但一切都很好。(STM32F767代码生成和闪烁正常(。
我不知道wtf对VSCode有错,但总有一天会给我新的理由讨厌VSC。
我试着向谷歌询问这件事,但我没有得到任何答复。我试图在一般设置中更改goto行为(找到13个设置(,但它总是出错。我已经在YT上录制了,所以你可以观看:https://www.youtube.com/watch?v=5FADq5yRp6g现在我认为SO是我最后的选择。
在文件中:.vscode\c_cpp_properties.json在字段中:"intelliSenseMode":"windows-msvc-x86">
"compilerArgs":[],
"compilerPath":"quot
我已经定义了我的工具链编译器,它是args。VScode自动识别它,并认为它与默认模式不同,并将Intellisense模式更改为其他模式(在我的情况下,它是arm gcc左右(。确实如此。我已经删除了我的编译器路径和编译器参数,并将其留空。现在GoToDefinition(默认F12(工作良好
但是要小心-如果你改变了"intelliSenseMode";到windows-msvc-x86,但设置编译器路径和args VSCode会通知您intelliSenseMode与您尝试设置的不同。无论如何,不要碰它。