Reference Language | Libraries | Comparison | Changes
把代码分段写入函数使程序员能编写模块化的代码,函数能执行一个特定的任务,然后返回代码中调用它的地方。创建函数的典型情况是当程序中需要多次进行相动的动作时。
对于习惯用 BASIC 的程序员,Arduino 中函数的作用与子程序(BASIC 中的 GOSUB)相同。
把代码段写成函数有许多好处:
在 Arduino 程序中有2个必需的函数:setup() 和 loop()。其它函数必需创建在这两个函数的括号之外。下例中我们创建了一个函数,把两个数相乘。

要调用这个简单的函数,需要传送参数给它,并且数据类型也要符合要求:
void loop{
int i = 2;
int j = 3;
int k;
k = myMultiplyFunction(i, j); // k now contains 6
}
函数需要在其他函数之外declared, 所以 "myMultiplyFunction()" 可以放在 "loop()" 函数之前或之后。
整个程序看起来就象这样:
void setup(){
Serial.begin(9600);
}
void loop() {
int i = 2;
int j = 3;
int k;
k = myMultiplyFunction(i, j); // k now contains 6
Serial.println(k);
delay(500);
}
int myMultiplyFunction(int x, int y){
int result;
result = x * y;
return result;
}
这个函数用 analogRead() 重复五次读取一个传感器并计算平均值,再把数据调整为8位(0-255)并反转,最后返回反转后的值。
int ReadSens_and_Condition(){
int i;
int sval = 0;
for (i = 0; i < 5; i++){
sval = sval + analogRead(0); // sensor on analog pin 0
}
sval = sval / 5; // average
sval = sval / 4; // scale to 8 bits (0 - 255)
sval = 255 - sval; // invert output
return sval;
}
要调用这个函数,只需要把它赋给一个变量:
int sens; sens = ReadSens_and_Condition();
勘误、提议和新的文档可以张贴到 论坛.
The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.