Arduino SDK 常用函数
· 阅读需 8 分钟
本文介绍了 Arduino 的常用函数,主要包含:
- 输入输出(I/O)
- 时间相关
- 串口通信
列出了用法并给出了示例。
注意
以下内容中的 int
指代整型变量,但实际上整型变量也有所不同,例如 analogWrite()
函数的原型如下:
void analogWrite(uint8_t pin, int val);
不必深究,只需要把它当成整形变量即可。
必备函数
setup()
Arduino通电或复位后,即会开始执行 setup()
函数中的程序,该函数只会执行一次。
例子:
void setup() {
pinMode(3, OUTPUT);
for (int i = 4; i < 11; i++) {
pinMode(i, OUTPUT);
}
}
loop()
在setup() 函数中的程序执行完后,Arduino会接着会无限循环 loop()
函数。
例子:
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
main()
函数呢?
你可能会问,为什么这个C++项目没有 main()
函数呢?
实际上,实际上 main()
函数存在于Arduino核心库中,且仍然是程序的入口。
我们翻看一下 Arduino 核心库的 main.cpp 就可以看到:
#include <Arduino.h>
int atexit(void (*)()) { return 0; } //这表示参数为一个指向 无参数无返回值 的函数的指针
void initVariant() __attribute__((weak));
void initVariant() { }
void setupUSB() __attribute__((weak));
void setupUSB() { }
int main(void)
{
init();
initVariant();
#if defined(USBCON)
USBDevice.attach();
#endif
setup();
for (;;) {
loop();
if (serialEventRun) serialEventRun();
}
return 0;
}
由上可见,对于一个 Arduino 项目,必须包含 setup()
和 loop()
,而不能包含 main()