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与其他设备之间的串口通信,实现更加复杂和高效的应用。