Arduino新手入门:常用函数详解与示例
"这篇资料主要介绍了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()等其他辅助函数,可以构建出丰富的串行通信功能。
Description
Writes binary data to the serial port. This data is sent as a byte or series of bytes; to send the characters representing the digits of a number use the print() function instead.
Syntax
Serial.write(val)
Serial.write(str)
Serial.write(buf, len)
Arduino Mega also supports: Serial1, Serial2, Serial3 (in place of Serial)
Parameters
val: a value to send as a single byte
str: a string to send as a series of bytes
buf: an array to send as a series of bytes
len: the length of the buffer
Returns
byte
write() will return the number of bytes written, though reading that number is optional
Example
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.write(45); // send a byte with the value 45
int bytesSent = Serial.write(¡°hello¡±); //send the string ¡°hello¡± and return the length of the string.
}
read()
Reads incoming serial data. read() inherits from the Stream utility class.
Syntax
Serial.read()
Arduino Mega only:
Serial1.read()
Serial2.read()
Serial3.read()
Parameters
None
Returns
the first byte of incoming serial data available (or -1 if no data is available) - int
Example
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
// say what you got:
Serial.print("I received: ");
Serial.println(incomingByte, DEC);
}
剩余5页未读,继续阅读
- 粉丝: 2
- 资源: 25
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦