Arduino新手入门:常用函数详解与示例

需积分: 32 44 下载量 199 浏览量 更新于2024-09-12 1 收藏 5KB TXT 举报
"这篇资料主要介绍了Arduino编程中的两个常用函数:write()和read(),以及它们在串行通信中的应用。适用于Arduino新手学习参考。" Arduino是一个开源电子平台,广泛用于制作各种创意项目,从简单的LED灯控制到复杂的机器人装置。在Arduino编程中,理解和掌握一些基本的函数是至关重要的,尤其是涉及到硬件交互时的串行通信。 **write() 函数** write()函数用于向串行端口发送二进制数据。它可以是一个字节值、字符串或者一个字节数组。在发送数字的字符表示时,应使用print()函数而不是write()。以下是write()函数的基本用法: ```cpp Serial.write(val); // 发送一个字节值 Serial.write(str); // 发送一个字符串作为一系列字节 Serial.write(buf, len); // 发送一个字节数组,len为数组长度 ``` Arduino Mega 还支持额外的串行端口:Serial1, Serial2, Serial3,分别替代了默认的Serial。当调用write()函数时,它将返回实际发送的字节数,但通常这个返回值是可选的。 **示例代码**: ```cpp void setup() { Serial.begin(9600); // 初始化串口波特率为9600 } void loop() { Serial.write(45); // 发送字节值为45的数据 int bytesSent = Serial.write("hello"); // 发送字符串"hello"并返回字符串长度 } ``` **read() 函数** read()函数用于接收来自串行端口的输入数据。它继承自Stream实用类。在没有可用数据时,read()将返回-1。该函数没有参数,直接调用即可读取第一个可用的字节数据。 ```cpp int incomingByte = 0; // 用于存储接收到的字节 ``` **示例代码**: ```cpp void setup() { Serial.begin(9600); } void loop() { if (Serial.available()) { // 检查是否有可用数据 incomingByte = Serial.read(); // 读取第一个可用字节 // 处理接收到的数据... } } ``` 在实际应用中,write()和read()常被用于实现Arduino与电脑或其他微控制器之间的数据交换,如传感器数据的传输或远程控制指令的接收。理解这两个函数的工作原理,对于进行基于Arduino的项目开发至关重要。在编程时,根据具体需求,结合print()、println()等其他辅助函数,可以构建出丰富的串行通信功能。