标识符 "DDRB" 未定义 - VS 代码/Visual studio
identifier "DDRB" is undefined - VS code / Visual studio
我在使用标识符 DDRB
时遇到以下错误:
identifier "DDRB" is undefined
但是,当我点击“go to definition”时,IDE确实显示它可以找到它们。该代码也可以毫无问题地编译。我首先使用 VScode 并将智能感知设置为 "tag parser" 确实有效,但它也摆脱了错误检查。所以,我切换到 Visual Studio,但问题仍然存在。在这两种情况下,我都包含了 AVR 库。
我在谷歌上搜索了很多并找到了一些解决方案,但大多数都已过时或不起作用。我该怎么做才能解决这个问题?
"minimal reproducible example:"
#include <avr\io.h>
int main() {
DDRB |= (1 << DD3);
}
我可以在 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 的 reply。感谢他!
如果您不想将此定义粘贴到几乎每个文件中:
- 按
f1
- 找到
C/C++; Edit configurations (UI)
- 将您的 MCU 名称粘贴到
Defines
部分,例如 __AVR_ATmega32U4__
它在 vs code 中对我有用。
我在使用标识符 DDRB
时遇到以下错误:
identifier "DDRB" is undefined
但是,当我点击“go to definition”时,IDE确实显示它可以找到它们。该代码也可以毫无问题地编译。我首先使用 VScode 并将智能感知设置为 "tag parser" 确实有效,但它也摆脱了错误检查。所以,我切换到 Visual Studio,但问题仍然存在。在这两种情况下,我都包含了 AVR 库。
我在谷歌上搜索了很多并找到了一些解决方案,但大多数都已过时或不起作用。我该怎么做才能解决这个问题?
"minimal reproducible example:"
#include <avr\io.h>
int main() {
DDRB |= (1 << DD3);
}
我可以在 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 的 reply。感谢他!
如果您不想将此定义粘贴到几乎每个文件中:
- 按
f1
- 找到
C/C++; Edit configurations (UI)
- 将您的 MCU 名称粘贴到
Defines
部分,例如__AVR_ATmega32U4__
它在 vs code 中对我有用。