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



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

标识符"DDRB"未定义

但是,当我单击"转到定义"时,IDE确实显示它可以找到它们。代码的编译也没有任何问题。我首先使用了VScode,并将intellisense设置为"标记解析器"确实有效,但它也消除了错误检查。因此,我转到了Visual Studio,但问题仍然存在。在这两种情况下,我都包括AVR库。

我在谷歌上搜索了很多,找到了一些解决方案,但大多数都过时了或不起作用。我能做些什么来解决这个问题?

"最小可复制示例:">

#include <avrio.h>
int main() {
DDRB |= (1 << DD3);
}

我可以在VS2017中重现同样的问题,这个问题可以通过在#include <avrio.h>之上添加#define __AVR_ATmega32U4__来解决,如下所示:

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

添加宏定义后,VS Intellisense选项可以很好地识别它们,问题就消失了。更多详细信息请参阅Kissiel的回复。谢谢他!

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

  1. f1
  2. 查找C/C++; Edit configurations (UI)
  3. 将您的mcu名称粘贴到Defines部分,例如__AVR_ATmega32U4__

它在vs代码中对我有效。

相关内容

  • 没有找到相关文章

最新更新