- 机器人等级考试
Arduino 自定义函数初步学习笔记
- 2025-8-21 21:49:15 @
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
函数可接收不同数据类型的参数(如 int
、float
等 ),返回两个参数里较小的那个值 。
(二)自定义无返回值无参数函数
自己定义函数,实现特定功能,像重复输出 “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
表示无返回值 )、函数名、参数(可无、单个或多个 )、函数体逻辑 。 - 调用:在合适位置(像
setup
、loop
里 ),按函数定义的参数要求传入值(无参数就直接写函数名加括号 ),程序会执行函数体代码 。 - 注释:给函数写清晰注释,说明功能、参数意义等,让代码更易读、维护,尤其是复杂逻辑的函数 。
0 条评论
目前还没有评论...