Processing的Serial库

参考:

 

Serial简介

Serial是一个串行接口(简称串口)库。

能够通过Processing程序「一次一个字节地」在两个设备之间读/写数据。

该库针对的是串行接口(serial即串行)。

常见的串行接口有普通计算机使用的RS232标准的9针接口:

对单片机来说,会使用TTL(逻辑门电路)电平的串口,它长这样:

Serial库的使用

要想在程序中添加Serial的相关功能,需要先导入(serial是processing的系统库,无需添加外部文件,直接import即可):

import processing.serial.*;

接下来就需要声明一个Serial变量:

Serial myPort;

如果此时设备有正在连接的串口,调用list()方法可以列举目前所有的串口名:

String[] strList = myPort.list();    // 返回一个字符串数组
println(strList);

如果存在这样的接口,就可以将myPort变量实例化了:

myPort = new Serial(this, "串口名", 波特率);

// 以Arduino为例
myPort = new Serial(this, "COM4", 9600);

这样一来,就可以在这个串口上,以某个波特率接收和发送数据了。

对于一个实例化的Serial,有以下方法可以使用:

方法名返回值类型说明
stop()void关闭processing与串口的通信
available()int返回缓冲区可读取的字节数
clear()void清空缓冲区
write()void向串口写入数据,支持int、String、bytes[]
read()int

读取缓冲区1字节的数据(0~255)

如果没有数据,返回-1

readChar()char

读取缓冲区的下一个字节,作为char类型返回。

如果没有数据,返回-1或0xffff

readBytes()byte[]或int

读取缓冲区所有数据,作为bytes[]类型返回。

readString()String

读取缓冲区所有数据,作为String类型返回。

如果没有数据,返回null。

默认编码格式为ASCII。若需要转换成Unicode,则要先转换成字节流,然后以bytes数组的形式输出。

readBytesUntil()byte[]或int

如果该字节数据不在缓冲区,返回null

如果缓冲区不够大,返回-1并报错

如果缓冲区没有内容,返回0

readStringUntil()String 
bufferUntil()void在调用serialEvent()之前,在缓冲区添加特定的字节数据。

 

此外,还有一个需要重写的函数serialEvent(Serial),调用方法和setup()和draw()等一样。当缓冲区有可用数据时,会自动调用该函数。

void serialEvent(Serial myPort) {
    // 要执行的内容
}

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值