当前位置: 首页 > 工具软件 > Serial IO > 使用案例 >

【MC3】关于Arduino串口Serial的几个常用Method方法列举

尉迟清野
2023-12-01

1.1  Serial.begin( baud )    功能为设置端口通信传输速率。【注意接收端的速率】,数据参数单位为波特率(bit per second)

1.2  Serial.end();     禁止串口传输函数。此时串口传输的pin脚可以作为数字IO脚使用。

1.3  Serial.print()    /    Serial.println()    通过打印的形式把函数送出。其中,Serial.println() 等价于 Serial.print("\r\n")

需要注意的是:不加说明的情况下,数据以十进制送出Serial.print(x, DEC);   其他尚有

Serial.print(78, BIN) 得到 "1001110"
Serial.print(78, OCT) 得到 "116"
Serial.print(78, DEC) 得到 "78"
Serial.print(78, HEX) 得到 "4E"
Serial.print(1.23456, 0) 得到 "1"
Serial.print(1.23456, 2) 得到 "1.23"
Serial.print(1.23456, 4) 得到 "1.2346"
Serial.print('N') 得到 "N"
Serial.print("Hello world.") 得到 "Hello world."

1.4  Serial.available() 与 Serial.read() 通常一起工作

Serial.available()  返回值int,数据的个数。无数据,返回  0 。

Serial.read();        返回串口缓存中第一个可读字节,无数据,返回-1,整数类型。

Serial.available() 的意思是:返回串口缓冲区中当前剩余的字符个数。一般用这个函数来判断串口的缓冲区有无数据,当Serial.available()>0时,说明串口接收到了数据,可以读取;

Serial.read()指从串口的缓冲区取出并读取一个Byte的数据,比如有设备通过串口向Arduino发送数据了,我们就可以用Serial.read()来读取发送的数据。

典型的用法如下:

while (Serial.available()>0)
{
    data= Serial.read();
    delay(2);
}

上面代码的意思就是,当串口接收到数据时(上面Serial.available()>0这句),反复读取串口的数据并赋值给data (上面data= Serial.read()这句),直到数据读完(即Serial.available()=0的时候)。

1.5    while(Serial.read()>= 0){}因Serial.read()函数读取串口缓存中的一个字符,并删除已读字符。因此可以用这句代码来清空串口缓存。实验代码详见下文代码。

1.6    Serial.readString();从串口缓存区读取全部数据到一个字符串型变量。

1.7    Serial.parseFloat();  读串口缓存区第一个有效的浮点型数据,数字将被跳过。当读到第一个非浮点数时函数结束。

1.8    Serial.find()    从串口缓存区读取数据,寻找目标字符串target(char型)

//参数--target: 目标字符串(char型)        返回--找到目标字符串返回真,否则为假
char target[] = ”目标字符串”;
Serial.find(target); 

 

参考文献:

1.《完全实战arduino》--美.Powenko

2.百度知道:https://zhidao.baidu.com/question/179373433931782804.html

3.CSDN:https://blog.csdn.net/iracer/article/details/50334041

 类似资料: