使用标识符DDRB
时出现以下错误:
标识符“ DDRB”未定义
但是,当我单击“转到定义”时,IDE确实表明可以找到它们。该代码也可以毫无问题地进行编译。我首先使用VScode,并将intellisense设置为“ tag parser”确实起作用,但它也摆脱了错误检查的麻烦。因此,我切换到Visual Studio,但是问题仍然存在。在这两种情况下,我都包含了AVR库。
我在Google上搜索了很多,找到了一些解决方案,但是大多数解决方案已经过时或无法使用。我该怎么办才能解决此问题?
“最小可复制示例:”
#include <avr\io.h>
int main() {
DDRB |= (1 << DD3);
}
答案 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。多亏他!