必备函数
想要写一个Arduino程序,这些函数是必须的。
setup()
setup()
函数原型
void setup();
作用
Arduino通电或复位后,即会开始执行 setup()
函数中的程序,该函数只会执行一次。
loop()
loop()
函数原型
void loop();
作用
在setup() 函数中的程序执行完后,Arduino会接着会无限循环 loop()
函数。
main()
函数呢?
main()
函数呢?我们知道,不管是C语言还是C++,程序的入口都是 main()
函数,那么为什么 Arduino 程序没有 main()
函数呢?
实际上,main()
函数并没有消失,它依然是 Arduino 程序的入口,只是 Arduino 设计人员将它移到了核心库里,让我们翻看一下 Arduino 核心库的 main.cpp
文件,它在 Arduino安装目录/hardware/arduino/avr/cores/arduino
里
// main.cpp
#include <Arduino.h>
int atexit(void (* /*func*/ )()) { 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;
}
示例
这个例子可以使 LED 闪烁
将 LED 的正极接电阻,再接 3 号引脚,负极接 GND 引脚
/*
* Author: Skyone
* Date: 2020/02/28
* Website: https://www.skyone.host
*/
#define LED 3
void setup() {
// Put your setup code here, to run once.
// 将你用于初始化的代码放在这里,这些代码只会执行一次。
pinMode(LED, OUTPUT); // 将 `LED` 引脚初始化为输出模式
}
void loop() {
// Put your main code here, to run repeatedly.
// 将你的业务函数放在这里,这些代码会一直循环的运行。
digitalWrite(LED, HIGH); // 将 `LED` 引脚设为 高电平
sleep(1000); // 停止 1 秒
digitalWrite(LED, LOW); // 将 `LED` 引脚设为 低电平
sleep(1000); // 停止 1 秒
}
最后更新于
这有帮助吗?