我的代码中存在一些问题,我可以运行它,因为我总是收到此错误消息
错误,禁用COM3 null的串行事件()
import processing.serial.*;
Serial port;
String c = " ";
String d = " ";
String data = " ";
PFont font;
int index = 0;
void setup() {
size(2024, 1024);
port = new Serial(this, "COM3", 9600);
port.bufferUntil('.');
font = loadFont("run.vlw");
textFont(font, 60);
}
void draw() {
background(150, 50, 200);
fill(46, 20, 2);
text(c, 70, 175);
fill(46, 20, 2);
text(d, 70, 215);
}
void serialEvent(Serial port) {
data = port.readStringUntil('.');
data = data.substring(0, data.length() - 1);
index = data.indexOf(",");
c = data.substring(0, index);
d = data.substring(index + 1, data.length());
}
我是新手,对不起,如果我犯了一个大错误。
答案 0 :(得分:0)
您的serialEvent()
代码无法处理异常。您对串行数据的处理可能包含一个错误,该错误随后导致未处理的StringIndexOutOfBoundsException
,因此程序崩溃。当然,我们需要了解通过COM3
传输的实际数据。
所以这里有两个建议:
serialEvent()
/ try
块中的catch
内,并打印出异常的堆栈跟踪。这应该会为您提供更多关于导致崩溃的原因的提示。尚无评论,所以我必须将此作为答案发布。