我正在尝试将数据写入我的Arduino Uno,并从中接收日期。
我在Windows 8.1上使用NetBeans,为了做到这一点,库“RXTXcomm.jar”。
我的代码是这样的,我的Arduino在COM3上,它在第25行和第80行抛出一个错误:
错误
java.lang.UnsatisfiedLinkError:java.library中没有rxtxSerial。加载gnu.io时抛出的路径。线程“main”java.lang.UnsatisfiedLinkError中的RXTXCommDriver异常:java.library.path中没有rxtxSerial
在java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
位于Java . lang . runtime . loadlibrary 0(runtime . Java:870)
位于Java . lang . system . loadlibrary(system . Java:1122)
gnu.io.CommPortIdentifier.(CommPortIdentifier.java:83)
在arduino.test.pkg3.ArduinoTest3.initialize(ArduinoTest3.java:25)
位于arduino . test . pkg 3 . arduinotest3 . main(arduinotest3 . Java:80)
守则:
01: package arduino.test.pkg3;
02:
03: import java.io.BufferedReader;
04: import java.io.InputStreamReader;
05: import java.io.OutputStream;
06: import gnu.io.CommPortIdentifier;
07: import gnu.io.SerialPort;
08: import gnu.io.SerialPortEvent;
09: import gnu.io.SerialPortEventListener;
10: import java.util.Enumeration;
11:
12: public class ArduinoTest3 implements SerialPortEventListener {
13:
14: SerialPort serialPort;
15: private static final String PORT_NAMES[] = {"COM3"};
16: private BufferedReader input;
17: private OutputStream output;
18: private static final int TIME_OUT = 2000;
19: private static final int DATA_RATE = 9600;
20:
21: public void initialize(){
22: System.setProperty("gnu.io.rxtx.SerialPorts", "COM3");
23:
24: CommPortIdentifier portId = null;
25: Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();
while(portEnum.hasMoreElements()){
CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
for(String portName : PORT_NAMES){
if(currPortId.getName().equals(portName)){
portId = currPortId;
break;
}
}
}
if(portId == null){
System.out.println("Could not find COM port.");
return;
}
try{
serialPort = (SerialPort) portId.open(this.getClass().getName(), TIME_OUT);
serialPort.setSerialPortParams(DATA_RATE,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
input = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
output = serialPort.getOutputStream();
serialPort.addEventListener(this);
serialPort.notifyOnDataAvailable(true);
}catch(Exception e){
System.err.println(e.toString());
}
}
public synchronized void close(){
if(serialPort != null){
serialPort.removeEventListener();
serialPort.close();
}
}
public synchronized void serialEvent(SerialPortEvent oEvent){
if(oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE){
try{
String inputLine=input.readLine();
System.out.println(inputLine);
}catch (Exception e){
System.err.println(e.toString());
}
}
}
public static void main(String[] args) throws Exception{
ArduinoTest3 main = new ArduinoTest3();
80 : main.initialize();
Thread t=new Thread(){
public void run(){
try{Thread.sleep(1000000);}catch(InterruptedException ie) {}
}
};
t.start();
System.out.println("Started");
}
}
希望大家找到答案:)
我解决了问题……
我还应该创建'RXTXcomm。“jar”库与名为“rxtxSerial.dll”的“dll”文件进行对话。但是在我添加了“dll”文件后,我得到了一个不同的错误,但这次的问题来自“dll”本身,所以在大量研究之后,我找到了完整的“dll”(http://jlog.org/rxtx-win.html)和教程(https://www.youtube.com/watch?v=43Vdpz1YmdU)它起作用了:)。
希望有人会发现我的经验有用。
问题内容: 我有一个Java程序,必须读取Arduino发送的信息。我从这里获取了Java代码。现在,我不太了解它是如何工作的,但是我尝试对其进行修改,并且得到了以下信息: 我创建一个对象串行COM口,我需要在主程序,然后我使用和当我需要它。 效果很好,Arduino获取数据并将其显示在LCD显示屏中。问题是。程序运行时,它会不断从串行端口读取数据(大约每40毫秒一次),但这并不意味着Arduin
我正在尝试使用shell和java的组合来读取和写入串行端口。目标是能够使用PrintWriter和BufferedReader从连接到串行端口的设备发送和接收命令。我知道这可以用不同的方式来实现(不使用shell),但这不是我想要的。我希望能够使用shell和java实现这一点。 这是我的代码: 有了这段代码,我特别尝试从串行端口读取数据。我使用java运行shell命令来访问串行端口,然后读取
我遇到了一个非常简单的问题。 我正在尝试制作一个Qt GUI应用程序,以从GUI控制我的Arduino(而不是从Arduino IDE的串行监视器控制它)。我能够使用QSerialPort Write()方法成功地向Arduino写入,但我无法从Arduino读取任何内容。从串行端口读取数据的唯一方法是在Qt代码的waitForBytesWrite()中的write()函数之后使用waitForR
我正试图通过(伪)串行连接使用处理从Arduino读取100个传感器数据条目。我使用的加工草图如下: 不幸的是,通常我的data.txt文件中存储的条目不到100个,其中一些条目(大约3-5个)在其中显示换行符。我做错了什么?Arduino IDE的串行监视器未打开!
我有一个Arduino与2个DS18B20温度传感器连接。我对python非常(非常)陌生。我正在寻找一种读取串行输入并将其解析到sqlite数据库的方法,但这已经超出了我的能力。为什么在尝试将串行端口定义为变量时出错? 首先<代码>sys.version 我的当前,只是读取串行连接程序的输入。 我目前无法编译它。我发现这个错误的大多数结果告诉添加,但在这种情况下,它不起作用。 错误。 另外,如果
问题内容: 我正在尝试在某些python代码和arduino代码之间来回“乒乓”信息。我想定期向arduino代码发送两个设定值(例如在分钟上),在arduino上读取它们并更新变量,然后定期(例如在30秒内)将状态信息从arduino发送回python。最终,python将从mySQL数据库发送信息并从中提取信息(后来的开发)。 现在,我无法获得可靠往返的信息。我没有在搜索中找到与此相近的任何内