使用标识符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的回复。谢谢他!
如果您不想将此定义粘贴到几乎所有文件中:
- 按
f1
- 查找
C/C++; Edit configurations (UI)
- 将您的mcu名称粘贴到
Defines
部分,例如__AVR_ATmega32U4__
它在vs代码中对我有效。