【问题标题】:identifier "DDRB" is undefined - VS code / Visual studio标识符“DDRB”未定义 - VS 代码/Visual Studio
【发布时间】:2020-03-15 08:55:54
【问题描述】:

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

标识符“DDRB”未定义

但是,当我单击“转到定义”时,IDE 确实显示它可以找到它们。该代码也可以毫无问题地编译。我首先使用 VScode 并将智能感知设置为“标签解析器”确实有效,但它也摆脱了错误检查。所以,我切换到 Visual Studio,但问题仍然存在。在这两种情况下,我都包含了 AVR 库。

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

“最小可重现示例:”

#include <avr\io.h>

int main() {

    DDRB |= (1 << DD3);

}

【问题讨论】:

标签: c++ c visual-studio intellisense


【解决方案1】:

我可以在 VS2017 中重现同样的问题,这可以通过在 #include &lt;avr\io.h&gt; 上方添加 #define __AVR_ATmega32U4__ 来解决,如下所示:

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

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

【讨论】:

    【解决方案2】:

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

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

    它在 vs 代码中对我有用。

    【讨论】:

    • +ِ1!无法理解为什么默认情况下不包含它。很有用!
    猜你喜欢
    • 2016-12-04
    • 2018-11-13
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2013-07-27
    • 2016-02-15
    • 2020-02-06
    相关资源
    最近更新 更多