arduino的串口函数

1、Serial.begin(speed):初始化串口通信,设置数据传输速率(波特率)为 speed

Serial.begin(9600);  //初始化串口,设置波特率为9600

2、​​​​​​​Serial.print(val):发送数据到串口。

int val = 10;
Serial.print(val);  //将变量val的值发送到串口

3、​​​​​​​Serial.println(val):发送数据到串口,并在数据末尾添加换行符。

int val = 10;
Serial.println(val);  //将变量val的值发送到串口,并添加换行符

​​​​​​​4、Serial.available():检查串口缓冲区中是否有可读的数据。

if(Serial.available() > 0){   //如果串口缓冲区有可读的数据
  char ch = Serial.read();    //读取串口缓冲区中的一个字符
}

5、​​​​​​​Serial.read():从串口缓冲区中读取一个字符。

char ch = Serial.read();  //从串口缓冲区中读取一个字符

6、​​​​​​​Serial.flush():清空串口缓冲区中的所有数据。

Serial.flush();  //清空串口缓冲区中的所有数据

在使用这些函数之前,需要在Arduino程序中包含头文件 Serial.h。此外,还需要两根接线(RX和TX)将Arduino板与串口设备连接。通常,TX接口连接到串口设备的RX接口,RX接口连接到串口设备的TX接口。

7、​​​​​​​Serial.write(val):与 Serial.print() 类似,但是它以字节的形式发送数据。这对于发送二进制数据特别有用。

byte data[3] = {0x01, 0x02, 0x03};
Serial.write(data, 3);  //将数组data中的3个字节发送到串口

8、​​​​​​​Serial.setTimeout(timeout):设置串口读取超时时间(毫秒)。在读取数据时,如果串口缓冲区中没有可用的数据,那么Arduino将等待 timeout 毫秒后返回。此函数默认的超时时间为1000毫秒(1秒)。

Serial.setTimeout(500);  //设置读取超时时间为500毫秒

​​​​​​​9、Serial.find(str):从串口缓冲区中搜索包含字符串 str 的数据,并返回第一个匹配的位置。如果未找到匹配项,则返回-1。

int pos = Serial.find("hello");  //从串口缓冲区中查找字符串 "hello"
if (pos != -1) {
  //找到匹配项
}

​​​​​​​10、Serial.readString():在串口缓冲区中读取字符串数据。此函数会一直等待,直到读取到串口缓冲区中的换行符 \n 为止。

String str = Serial.readString();  //从串口缓冲区中读取字符串数据

这些高级函数使得在处理串口数据时更加方便和灵活,但需要结合具体情况进行使用。

11、Serial.parseInt():从串口缓冲区中读取整数。此函数会一直等待,直到读取到数字为止。

int val = Serial.parseInt();  //从串口缓冲区中读取一个整数

12、​​​​​​​Serial.parseFloat():从串口缓冲区中读取浮点数。此函数会一直等待,直到读取到数字为止。

float val = Serial.parseFloat();  //从串口缓冲区中读取一个浮点数

13、​​​​​​​Serial.availableForWrite():返回还能写入串口缓冲区中的字节数。这个函数可用于检查Arduino是否有足够的缓冲区空间来承载发送的数据。

if(Serial.availableForWrite() >= 10){  //如果串口缓冲区至少还能写入10个字节的数据
  Serial.print("hello");  //发送字符串数据到串口
}

14、​​​​​​​Serial.swap():交换Arduino板上的两个串口对象。例如,在使用SoftwareSerial库时,可以使用这个函数来交换Arduino的软串口和硬串口。

Serial.swap();  //交换Arduino的两个串口对象

这些函数完善了Arduino对串口的支持方式,可以更方便地实现各类串口数据的发送和接收。

15、​​​​​​​Serial.begin(baudRate):初始化串口通信,并设置波特率为 baudRate。注意,Arduino的串口默认设置为8个数据位、无校验位、1个停止位,这个设置不可更改。

Serial.begin(9600);  //初始化串口通信,并设置波特率为9600

16、​​​​​​​Serial.end():关闭串口通信。如需重新开启通信,需要再次调用 Serial.begin() 函数。

Serial.end();  //关闭串口通信

通过对这些函数的深入理解,开发者可以更好地控制Arduino与其他设备之间的串口通信,实现更加复杂和高效的应用。

### Arduino `Serial.println` 函数使用说明 #### 初始化串口通信 为了能够正常使用 `Serial.println()` 函数,在程序启动时需要先初始化串口通信。这通常是在 `setup()` 函数内完成,通过调用 `Serial.begin(波特率)` 来设定波特率[^2]。 ```cpp void setup() { Serial.begin(9600); } ``` #### 基本语法结构 `Serial.println()` 的基本形式如下: - **无参数**:仅发送换行符。 - **单个字符串/数值参数**:将给定的内容加上换行符一起发送出去。 - **带格式化参数**:可以指定输出的数制(如二进制、八进制、十六进制等),适用于整型数据。 具体示例如下所示: ```cpp // 发送固定文本并换行 Serial.println("Hello, world!"); int number = 42; float piValue = 3.14; // 发送整数及其对应的十六进制表示,并各占一行 Serial.println(number); // 默认为十进制 Serial.println(number, HEX); // 十六进制 // 浮点数也会被转换成字符串再发送 Serial.println(piValue); char message[] = "Test Message"; // 字符数组同样适用 Serial.println(message); ``` #### 实际应用场景 当涉及到连续输出多个值而不希望它们挤在同一行时,可以选择单独调用多次 `Serial.println()` 或者在一个循环体内逐次打印不同的变量值[^3]。 ```cpp for (int i = 0; i < 5; ++i) { Serial.print(i); // 不会自动换行 } Serial.println(); // 明确指示换行位置 for (int j = 0; j < 5; ++j) { Serial.println(j); // 自动换行后的效果更清晰易读 } ``` 此外,在开发过程中经常利用此功能来进行简单的调试工作,比如追踪某个特定时刻下的内部状态变化情况或是验证某些逻辑分支是否被执行到了[^5]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值