Arduino 函数学习笔记

一、函数基础概念

在 Arduino 编程里,函数是一段可重复使用的代码块,能让程序结构更清晰、模块化,方便代码复用与维护 。

二、函数的分类与使用

(一)系统内置函数(以 min 函数为例)

Arduino 提供了一些内置函数,可直接调用。比如 min 函数,用于获取两个数中的较小值。

void setup() {
  Serial.begin(9600); // 初始化串口通信,设置波特率为 9600
  int a = 3, b = 5; 
  // min 是系统内置函数,传入两个参数 a 和 b,返回两者中的较小值并赋值给 c
  int c = min(a, b); 
  Serial.println(c); // 串口输出较小值,这里会输出 3
}

void loop() {
  // 循环体暂为空,setup 里的代码只执行一次
}

说明min 函数可接收不同数据类型的参数(如 intfloat 等 ),返回两个参数里较小的那个值 。

(二)自定义无返回值无参数函数

自己定义函数,实现特定功能,像重复输出 “hello” 。

// 自定义函数 f1,无返回值(void 表示)、无参数
void f1() { 
  Serial.println("hello"); // 函数体,执行串口输出 "hello" 操作
}

void setup() {
  Serial.begin(9600); 
  f1(); // 调用 f1 函数,输出 "hello"
  f1(); // 再次调用,又输出 "hello"
  f1(); // 第三次调用,还输出 "hello"
}

void loop() {
  // 循环体为空
}

结构解析

  • 函数定义void f1()void 表明函数执行完没有返回结果;f1 是函数名,括号里无内容表示无参数;大括号 {} 内是函数体,写具体要执行的操作 。
  • 函数调用:在 setup 里直接写 f1(); ,程序执行到这行就会跳转到 f1 函数体执行代码,执行完再回到调用处继续往下执行 。

(三)自定义有参数无返回值函数(以 f2 为例 )

让函数能根据传入的参数执行不同操作,比如根据参数计算并输出结果 。

// 自定义函数 f2,接收一个 int 类型参数 a,无返回值
void f2(int a) { 
  Serial.println(a * 2); // 函数体:将传入的参数 a 乘以 2 后,通过串口输出
}

void setup() {
  Serial.begin(9600); 
  f2(5); // 调用 f2 函数,传入参数 5,会输出 5 * 2 = 10
}

void loop() {
  // 循环体为空
}

说明:调用时传入的参数要和函数定义的参数类型匹配(这里是 int 类型 ),函数根据参数做相应处理 。

(四)自定义有逻辑判断的函数(以 myMax 为例 )

实现更复杂功能,比较两个数并输出较大值 。

// 自定义函数 myMax,接收两个 int 类型参数 a 和 b,无返回值
void myMax(int a, int b) { 
  if (a > b) { // 判断 a 是否大于 b
    Serial.println(a); // a 大就输出 a
  } else {
    Serial.println(b); // 否则输出 b
  }
}

void setup() {
  Serial.begin(9600); 
  myMax(10, 1); // 调用 myMax,传入 10 和 1,因为 10 > 1,会输出 10
}

void loop() {
  // 循环体为空
}

注释解读:在函数上方添加注释,清晰说明函数功能、参数含义,方便自己和他人理解代码作用,比如:

// 定义一个名为 myMax 的函数,用于比较两个整数并输出较大的值
// 参数:
//  a - 要比较的第一个整数
//  b - 要比较的第二个整数
void myMax(int a, int b) { 
  // 判断第一个整数是否大于第二个整数
  if (a > b) { 
    // 如果 a 大于 b,通过串口输出 a 的值
    Serial.println(a); 
  } else {
    // 如果 a 不大于 b(即 a 小于或等于 b),通过串口输出 b 的值
    Serial.println(b); 
  }
}

三、函数使用总结

  • 定义:明确返回值类型(void 表示无返回值 )、函数名、参数(可无、单个或多个 )、函数体逻辑 。
  • 调用:在合适位置(像 setuploop 里 ),按函数定义的参数要求传入值(无参数就直接写函数名加括号 ),程序会执行函数体代码 。
  • 注释:给函数写清晰注释,说明功能、参数意义等,让代码更易读、维护,尤其是复杂逻辑的函数 。

0 条评论

目前还没有评论...