标识符"DDRB"未定义 - VS Code / Visual Studio

3
在使用标识符DDRB时,我遇到了以下错误:

标识符“DDRB”未定义

但是,当我点击“转到定义”时,IDE确实显示它可以找到它们。代码也可以编译而没有任何问题。我先是使用VScode并将智能感知设置为“标签解析器”,这样做有效,但也消除了错误检查。所以我切换到Visual Studio,但问题仍然存在。在这两种情况下,我都包含了AVR库。

我已经谷歌搜索了很多,并找到了一些解决方案,但大多数已过时或不起作用。我该怎么办才能解决这个问题?

"最小可复现示例:"

#include <avr\io.h>

int main() {

    DDRB |= (1 << DD3);

}

请提供 [mre]。 - Algirdas Preidžius
尝试在顶部添加 #define __AVR_ATmega32U4__ - LoLance
2个回答

3

如果您不想将此定义粘贴到几乎每个文件中:

  1. 按下 f1
  2. 找到 C/C++; 编辑配置(UI)
  3. Defines 部分中粘贴您的MCU名称,例如 __AVR_ATmega32U4__

这在 vs code 中对我有效。


+1!不明白为什么它不是默认包含的。非常有用! - David Refoua

3

我在VS2017中遇到了同样的问题,可以通过在 #include <avr\io.h> 上方添加 #define __AVR_ATmega32U4__ 来解决:

#define __AVR_ATmega32U4__ 
#include <iostream>
#include <avr/io.h>
int main()
{
    DDRB |= (1 << DD3);
}

添加了宏定义后,VS Intellisense选项可以很好地识别它们,问题就解决了。更多细节请参考Kissiel回复。感谢他!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接