有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Arduino+处理代码错误“禁用_serialevent()”

我的代码中有一些问题,我可以运行它,因为我总是收到这个错误消息

Error, disabling serialEvent() for 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());
}

我是新手,如果我犯了一个大错误,我很抱歉


共 (1) 个答案

  1. # 1 楼答案

    您的serialEvent()代码不处理异常。您对串行数据的处理可能包含一个错误,该错误随后导致未处理的StringIndexOutOfBoundsException,因此程序崩溃。当然,我们需要了解通过COM3传输的实际数据。 因此,这里有两个建议:

    1. 将整个代码放在try/catch块中的serialEvent()内,并打印出异常的堆栈跟踪。这将为您提供更多关于导致崩溃的原因的提示
    2. 编辑您的问题并添加Arduino串行监视器输出的片段

    现在还不能发表评论,所以我不得不将此作为一个答案发布