gpt4 book ai didi

Java 从 Linux 上的 Arduino Nano 读取 SerialPort 上的流

转载 作者:太空狗 更新时间:2023-10-29 11:17:00 25 4
gpt4 key购买 nike

Arduino nano 设置为在串行端口上以波特率 9600 向我发送“测试”。使用 fazecast jSerialComm 库,我编写了一个测试应用程序以在我的计算机上显示发送的数据。我想写信给 arduino 并在某个时候从 arduino 读取。我对这种串行通信还很陌生。这是我的 Java 代码:

public class main {

private static int baudRate = 9600;
private static int dataBits = 8;
private static int stopBits = 1;
private static int parity = 0;
private static int readTimeout = 0;
private static int writeTimeout = 0;

public static void main(String[] args) throws IOException, InterruptedException {
SerialPort sp = SerialPort.getCommPort("/dev/ttyUSB0");
sp.setComPortParameters(baudRate, dataBits, stopBits, parity);
sp.setComPortTimeouts(SerialPort.TIMEOUT_WRITE_BLOCKING, readTimeout, writeTimeout);

if (sp.openPort()) {
System.out.println("Port is open");
} else {
System.out.println("Failed to open port");
return;
}

for (Integer i = 0; i < 5; ++i) {
sp.getOutputStream().write(i.byteValue());
sp.getOutputStream().flush();
System.out.println("Sent number: " + i);
Thread.sleep(1000);
}
if(sp.getInputStream() != null){
System.out.print(sp.getInputStream().read());
}

if (sp.closePort()) {
System.out.println("Port is closed :)");
} else {
System.out.println("Failed to close port :(");
return;
}

}

}

我出于某种原因无法打开端口。它总是说“无法打开端口”。我在终端中执行了 ls/dev/tty*,然后拔掉了 Arduino nano,唯一的 /dev/ttyUSB0 被移除了。当我重新插入并运行命令时,相同的命令再次出现。我认为这可能是问题所在,但可能不是。我究竟做错了什么?我想我前一段时间读过一些关于它是一个 linux 问题的东西,但我似乎找不到它;这可能是与 Linux 相关的问题吗?

最佳答案

确实是linux的问题。它与端口权限有关。我必须执行 sudo chmod 666/dev/ttyUSB0 来解决这个问题。但我需要在每次启动时都这样做,所以我仍在寻找长期解决方案。

关于Java 从 Linux 上的 Arduino Nano 读取 SerialPort 上的流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55125573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com