Basics of C++ with Arduino

Basics of C++ with Arduino

本文关键字:Arduino with C++ of Basics      更新时间:2023-10-16

我读过关于Arduino的文章,以及它如何使用与C相似但不等同的语言。我非常熟悉C++,我想知道如何使用Arduino完成基本任务,例如与I/O引脚通信。我想,一个人将需要内存地址到引脚,然后做这样的事情"闪烁的led":

int main()    {
    while (1)    {
        bool * out_pin = /* Whatever that memory address was for that pin */;
        *out_pin = 1;
        // Some sort of sleep function? (I only know of "windows.h"'s "Sleep" function)
        *out_pin = 0;
    }
    return 0; // Kind of unneeded, I suppose, but probably compiler errors otherwise.
}

我可能真的错了:这就是我问这个问题的原因。

这是从我的问题下面的评论中复制的。David Schwartz回答了我的问题:

关闭。引脚没有内存地址(它们是寄存器映射的,而不是内存映射的)。通常,编译器已经为您将它们映射到变量。所以你只需要做pin_name=pin_value;(像PORTD=7;),编译器发挥了神奇的作用David Schwartz 7分钟前

[PORTD's]寄存器的关键字。它的行为就像一个变量。当编译器看到PORTD=7;是将其编译为必要的汇编代码,以便将7加载到PORTD寄存器中。当它看到i=PORTD时;is从PORTD寄存器加载值并将其存储在变量i中。编译器只是使其工作。–David Schwartz 2分钟前

谢谢!

您需要使用pinMode(your_pin)来激活IO引脚。然后您可以使用数字/模拟写/读与它们进行通信