标识符“ DDRB”未定义-VS代码/ Visual Studio

时间:2019-11-19 18:39:00

标签: c++ c visual-studio intellisense

使用标识符DDRB时出现以下错误:

  

标识符“ DDRB”未定义

但是,当我单击“转到定义”时,IDE确实表明可以找到它们。该代码也可以毫无问题地进行编译。我首先使用VScode,并将intellisense设置为“ tag parser”确实起作用,但它也摆脱了错误检查的麻烦。因此,我切换到Visual Studio,但是问题仍然存在。在这两种情况下,我都包含了AVR库。

我在Google上搜索了很多,找到了一些解决方案,但是大多数解决方案已经过时或无法使用。我该怎么办才能解决此问题?

“最小可复制示例:”

#include <avr\io.h>

int main() {

    DDRB |= (1 << DD3);

}

1 个答案:

答案 0 :(得分:1)

我可以在VS2017中重现相同的问题,可以通过在#define __AVR_ATmega32U4__上方添加#include <avr\io.h>来解决此问题,如下所示:

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

添加宏定义后,VS Intellisense选项可以很好地识别它们,问题就消失了。有关更多详细信息,请参见 Kissiel's reply。多亏他!