ARDUINO 函数的使用及进阶

Arduino入门3——库的调用,打开0.96寸oled的正确方式 Arduino驱动0.96寸oled,通过SPI通讯方式,实现中文、图片、动画显示 阅读详情

ARDUINO 函数的基本使用及高级使用方式

简介

在Arduino编程中,函数是一种用于执行特定任务的代码块。函数可以帮助我们组织代码、提高可读性和可维护性。

函数的基本使用

在Arduino中,函数由两个部分组成:函数头和函数体。

函数头

函数头包括函数的返回类型、函数名和可能的参数列表。例如:

int addNumbers(int a, int b);

上述函数头表示这是一个返回类型为整数(int)的函数,函数名为addNumbers,接受两个整数参数a和b。

函数体

函数体是包含在大括号 {} 内的代码块,用于执行具体的任务。例如:

int addNumbers(int a, int b) {
  int result = a + b;
  return result;
}

上述函数体表示这个函数会计算两个整数的和,并将结果作为整数返回。

函数调用

在程序的其他地方,我们可以通过函数调用来执行函数。例如:

int sum = addNumbers(3, 5);

上述调用会将3和5作为参数传递给addNumbers函数,并将返回值(8)存储在变量sum中。

函数的高级使用方式

默认参数

在函数定义中,我们可以为某些参数指定默认值。这样,调用函数时如果没有提供这些参数,它们将使用默认值。例如:

void greetUser(String name, String greeting = "Hello") {
  Serial.print(greeting);
  Serial.print(", ");
  Serial.println(name);
}

在上述例子中,greeting参数有一个默认值"Hello"。如果我们调用greetUser("Alice"),则会输出"Hello, Alice"。

函数重载

函数重载允许我们定义多个同名函数,只要它们的参数类型或数量不同。编译器会根据函数调用的上下文自动选择正确的函数。例如:

int add(int a, int b) {
  return a + b;
}

float add(float a, float b) {
  return a + b;
}

上述例子中定义了两个同名的add函数,分别用于整数和浮点数相加。

ARDUINO 函数的实现原理

Arduino函数的实现原理与其他编程语言相似。当函数被调用时,程序会跳转到函数体的开始处执行代码,执行完毕后返回调用点。函数可以有返回值,也可以是void,表示没有返回值。

完整详细代码示例

以下是一个简单的Arduino代码示例,演示了函数的基本使用和高级使用方式。

void setup() {
  Serial.begin(9600);
  
  int sum = addNumbers(3, 5);
  Serial.print("Sum: ");
  Serial.println(sum);

  greetUser("Alice");
  greetUser("Bob", "Hi");
}

void loop() {
  // 主循环,可以执行其他任务
}

// 基本使用方式:计算两个整数的和
int addNumbers(int a, int b) {
  int result = a + b;
  return result;
}

// 高级使用方式1:带默认参数的函数
void greetUser(String name, String greeting = "Hello") {
  Serial.print(greeting);
  Serial.print(", ");
  Serial.println(name);
}

// 高级使用方式2:函数重载
float add(float a, float b) {
  return a + b;
}

在这个例子中,我们定义了一个基本的addNumbers函数和两个高级使用方式的函数greetUser和add。在setup函数中调用了这些函数,并通过串口打印输出。这个代码示例中的注释解释了每个步骤的功能。

Arduino基础篇(二)-- 常用的基本函数 Arduino 可能是很多小伙伴入门单片机的第一块板子,这里整理了在使用Arduino 编程的常用函数,包括I/O控制、时间函数、中断函数、数学函数、串口通信函数以及常用的I2C总线和SPI总线的简单介绍,同时参考文档也提供了学习路线。在嵌入式的学习之路,需要不断实战,不断动手去搭建电路,烧写代码,只有这样你才会设计出更完美的产品。 阅读详情

相关推荐

Arduino 语法、函数使用、最常用函数、arduino教程、arduino笔记、参考手册

函数部分 数字 I/O pinMode() 描述 将指定的引脚配置成输出或输入。详情请见digital pins。 语法 pinMode(pin, mode) 参数 pin:要设置模式的引脚 mode:INPUT或OUTPUT 返回 无 例子 ledPin = 13 // LED连接到数字脚13 void setup() { pinMode(ledPin,OUTPUT); //设置数字脚为输...

mbs706的博客 1万+

Arduino基础函数

@[语言:使用Setup和loop这个两个函数:Arduino软件结构包括两个主要函数:Setup()函数 初始化变量,管脚模式,调用库函数等Loop()函数 连续循环执行loop函数内的程序(可以理解成while(1);)在Arduino控制器通电或复位后,,程序启动时会调用 setup()函数。setup函数只能在Arduino板的每次上电或复位后运行一次。loop() 让你的程序循环地被执行。使用它来运转Arduino。这部份的程式会一直重复的被执行,直到Arduino 板子被关闭。HIGH | LO

weixin_67189637的博客 5156

Arduino程序函数从入门到精通

安装后需配置开发板类型(如Arduino Uno)和串口。:配置数字引脚为输入(INPUT)、输出(OUTPUT)或输入上拉(INPUT_PULLUP)。传感器:DHT11(温湿度)、MQ-135(空气质量)。:模拟输入(0-1023)与PWM输出(0-255)。:非阻塞时间管理(返回系统运行时间)。:初始化串口通信(波特率需一致)。Python/C++/Java等。:在setup()前声明函数。:阻塞式延时(单位:毫秒)。:数字引脚电平控制与读取。:发送数据到串口监视器。核心函数详解与代码实践。

2401_82505179的博客 1248

ESP8266 from Arduino.h基本功能函数定义

ESP8266 from Arduino.h基本功能函数定义 宏定义常量 #define HIGH 0x1//定义高低电平,对引脚读写时用到 #define LOW 0x0//digitalWrite函数会用到 #define INPUT 0x0//设置引脚模式,输入 #define OUTPUT 0x1//输出 #define INPUT_PULLUP 0x2//输入上拉,pinMode函数 //一些常用数学常数 #define PI 3.1415926535897932384626433832795

perseverance51博客 982

Arduino 系列:Arduino Nano 系列 (基于 ATmega328P)_(12).ArduinoNano编程基础

通过本文,您应该对 Arduino Nano 的基本编程和一些常用功能有了初步的了解。Arduino Nano 是一个功能强大的开发板,适合各种小型项目。希望这些示例和技巧能帮助您更好地开发和调试您的项目。如果您有任何问题或需要进一步的帮助,请参考 Arduino 官方文档或社区论坛。

2401_87715305的博客 1892

Arduino基础编程学习与实践代码集

htmltable {th, td {th {pre {简介:Arduino是一个受欢迎的开源电子原型平台,适用于DIY爱好者、工程师和艺术家。该压缩包提供了Arduino编程的基础知识和示例代码,包括如何使用Arduino IDE、基本结构、输入输出操作、库函数、变量和数据类型、条件语句、循环语句、函数、数组、中断、通信协议、传感器与执行器的控制、蓝牙/Wi-Fi模块的使用、固件升级以及电路设计。

weixin_34268462的博客 1231

arduino支持的内核版本_STM32 ARDUINO HALMX  进阶(二)和官方构架、函数、宏的兼容和增强...

STM32 ARDUINO HALMX 起步http://bbs.mydigit.cn/read.php?tid=2168292STM32 ARDUINO HALMX进阶(一)http://bbs.mydigit.cn/read.php?tid=2198666STM32 ARDUINO HALMX进阶(二)http://bbs.mydigit.cn/read.php?tid=2207473...

weixin_39845221的博客 475

Nordic BLE芯片RF测试

BLE设备在过蓝牙BQB,FCC,ETSI等各种认证时实验室一般都需要做RF各项指标的测试。Nordic公司的SDK包中提供了两种RF测试程序,一种是DTM,另一种是Radio test。这两种都可以做RF指标测试但各自又有区别。DTM是按照蓝牙规范中Direct test mode所要求数据格式测试(数据格式定义参看:Bluetooth Core Specification v5.0->...

5638

Arduino进阶1——串口通信与常用函数实战

本文详细介绍了Arduino串口通信的核心技术,重点解析了Serial.begin()、Serial.print()、Serial.read()等关键函数的使用方法。通过实战项目展示如何实现数据监控、双向控制和调试优化,帮助开发者高效利用串口进行设备通信与数据处理,提升Arduino项目的交互能力和稳定性。

mmm90的博客 432

关于动态存储器dram中rank,bank,device之间的关系

DEVICE_WIDTH表示设备的带宽(单位bit),每个列(column)包含DEVICE_WIDTH 位(bit),每一行(row)包含NUM_COLS个column。   而每一个bank包含NUM_ROWS个行(row)。所以一个设备(device)的存储容量为PER_DEVICE_STORAGE =NUM_ROWS*NUM_COLS*DEVICE_WIDTH*NUM_BANKS (i

wyj7260的专栏 4731

【24届计算机校招】面经汇总

这是笔者为了能够记录一下接下来一段时间会看的一些博客视频等汇总。一是为了汇总后常回来看看,而是为了后面的人在这个阶段准备的时候有个参考。现在已经6月底了,大部分高校的夏令营都出来了,而我至今还是夏0营,前几天还为川大会收双非而感到高兴,但遗憾的是川大并没要我。而我另一位双非的朋友已经拿到offer,在决定去南开还是华师了。没有对比就没伤害,我开始怀疑自己的决策是否正确——这段时间的夏令营我都有关注,但我仅报了少部分的几个酒吧舞,而没有选择海投,我觉得只要我认准了一个东西,我拼尽全力就一定能够获取到。

JehanRio's Private Blog 804

Arduino进阶篇(二)-- 高效利用内置函数提升开发效率

本文深入探讨了如何高效利用Arduino内置函数以提升开发效率与代码质量。重点介绍了使用millis()函数实现非阻塞多任务调度,避免delay()导致的程序阻塞;结合map()与constrain()函数进行传感器数据的映射与安全限幅;以及通过串口函数组合与解析技巧优化通信。掌握这些核心函数组合技,能帮助开发者从“能用”迈向“好用”,构建更稳定、高效的Arduino项目。

weixin_29188997的博客 287

LabVIEW Modbus通讯实战:从安装库到读写寄存器的完整避坑指南

本文详细介绍了LabVIEW与Modbus通讯的完整实战指南,从安装库文件到读写寄存器的全流程操作,帮助开发者避开常见问题。通过虚拟串口配置、主机配置实战和高级调试技巧,提升工业自动化领域的通讯效率与可靠性。

milk8的博客 739

Arduino函数进阶指南:如何用PWM控制LED亮度?analogWrite()的5个实用技巧

本文深入探讨Arduino中PWM控制LED亮度的5个实用技巧,重点解析`analogWrite()`函数的高级应用。从PWM基础原理到平滑调光算法,再到呼吸灯效果和多级亮度控制,帮助开发者掌握Arduino函数进阶技巧,实现更精细的LED控制效果。

weixin_30772105的博客 496

Cortex-M TrustZone实战:从硬件隔离到安全交互的嵌入式开发指南

在嵌入式系统开发中,硬件安全隔离是构建可信执行环境(TEE)的核心技术。其原理是通过处理器硬件机制,将系统资源划分为安全与非安全域,实现内存、外设和代码的强制访问控制。这项技术的核心价值在于,它能在单一芯片上为资源受限的物联网(IoT)设备、智能传感器等提供芯片级的安全基础,无需依赖外置安全元件,从而降低BOM成本并简化设计。典型的应用场景包括保护设备密钥、实现安全启动、构建安全服务(如加密、密钥管理)以供应用程序调用。本文聚焦于Arm Cortex-M系列微控制器上的TrustZone技术实现,针对开发中

weixin_42639246的博客 300

深入学习FIFO

深入理解FIFO、同步FIFO和异步FIFO、FIFO设计的难点以及FIFO深度计算

好好学习,天天向上 2647

进阶之路(基础篇) - 010 Arduino 函数(基本、串口、SPI)

一.基本函数 pinMode(引脚号,模式); digitalWrite(引脚号,电平状态);     //默认低电平(或浮空)     digitalRead(数字输入端口号);   analogRead(引脚号);           //调用10位AD   analogWrite(引脚号,模拟量);      ...

weixin_30539835的博客 275

MFC C++ 中实现跨平台(WindowsLinux)的远程桌面控制

**输入捕获**:在显示窗口中捕获鼠标/键盘事件(重写 `OnLButtonDown`、`OnMouseMove`、`OnKeyDown` 等),将事件坐标/键值通过网络发送到服务端。- **显示窗口**:使用 `CStatic` 或自定义 `CWnd` 派生类显示远程桌面图像(通过 `StretchDIBits` 绘制解压后的像素数据)。// 转换为相对坐标。- **Wayland 支持**:需使用 `libweston` 或 `xdg-desktop-portal`,较复杂,建议优先支持 X11。

寒寒豆豆软件公司的博客 155

Arduino - 串口操作函数与示例代码大全

文章目录Arduino - 串口操作函数与示例代码大全1.串口设置Serial.begin();Serial.end();2.清空串口缓存Serial.flush();while(Serial.read()>= 0){}3.输出串口数据Serial.println();Serial.SerialEvent();4.读串口缓存区数据Serial.available();Serial.read(...

acktomas的博客 1万+

HTML流光爱心(完整代码)

HTML语言实现红蓝色流光爱心效果的完整代码。

AIGC 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【亲测免费】 Arduino库函数大全

Arduino库函数大全 【下载地址】Arduino库函数大全分享 Arduino库函数大全--- 项目地址: https://gitcode.com/Open-source-documentation-tutorial/2ee9...

gitblog_06611的博客 640

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

零基础入门学用Arduino 第五部分

本文是基于太极创客Arduino教程的学习笔记,重点介绍了面向对象编程(OOP)在Arduino开发中的应用。主要内容包括: 面向对象基础概念 三大特性:封装、继承、多态 类与对象的关系,如舵机类与具体舵机对象 类与对象语法详解 类定义格式(public/protected/private访问控制) 构造函数与析构函数(含初始化列表) 拷贝构造函数及其调用场景 实践应用 通过LED控制案例演示类封装 分文件编写规范(.h头文件和.cpp实现文件) 自建Arduino库的方法(放入libraries目录) 开

Zevalin的博客 1365

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Arduino蜂鸣器实验:从基础到进阶

这篇文章介绍了如何使用Arduino和蜂鸣器模拟蜜蜂声音的实验。主要包括基础实验(简单音阶)和进阶实验(四种蜜蜂声音模式),通过定义音符频率和编写不同函数实现不同声音效果。文章详细解析了代码结构、函数调用流程,并给出了优化建议(如随机频率、非阻塞延迟等)。最后说明如何在不使用playNote函数的情况下实现相同效果。实验通过蜂鸣器频率变化生动模拟了蜜蜂在不同状态下的声音特征。

2503_93737966的博客 1103

Arduino教程_v20201007

​Arduino教程 Arduino 概述 Arduino 板的说明 Arduino 安装 Arduino 程序结构 Arduino 数据类型 Arduino 变量和常量 Arduino 运算符 Arduino 控制语句 Arduino 循环 Arduino 函数 Arduino 字符串 Arduino 字符串对象 Arduino 时间函数 Arduino 数组 Arduino函数库 Arduino I/O函数 Arduino 高级I/O函数 Arduino 字符函.

dream it possible 543

通过Arduino 使用蜂窝器保姆级教程(两种不同代码)

(440Hz):蜜蜂低频嗡嗡声(880Hz):蜜蜂中频音(1760Hz):蜜蜂高频音NOTE_ALARM(1047Hz):受干扰时的警报音。

tiantongailisi的博客 1050
上一篇: ARDUINO 操作 SPI 教程
下一篇: ARDUINO 程序结构介绍
字节人生
博客等级 码龄3年 1952粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值