它被解决了。在java代码中打开端口之后,我放了一个thread.sleep(4000);
,现在它可以工作了。问题是,每次打开端口时,arduino都会重置。当我发送数据时,arduino还没准备好听。
我是arduino和Java的新手,但我做了一个如此简单的程序,我不明白为什么不能工作。
我向对应于arduino(COM5)串行端口发送一个字符串:
import java.io.*;
import java.util.*;
import gnu.io.*;
public class SimpleWrite {
static Enumeration portList;
static CommPortIdentifier portId;
static String messageString = "color FF00FFEND";
static SerialPort serialPort;
static OutputStream outputStream;
public static void main(String[] args) {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals("COM5")) {
try {
serialPort = (SerialPort)
portId.open("SimpleWriteApp", 2000);
outputStream = serialPort.getOutputStream();
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
outputStream.write(messageString.getBytes());
System.out.println(messageString);
outputStream.close();
serialPort.close();
}
catch (IOException e) {System.out.println("err3");}
catch (PortInUseException e) {System.out.println("err");}
catch (IOException e) {System.out.println("err1");}
catch (UnsupportedCommOperationException e) {System.out.println("err2");}
}
}
}
}
}
和arduino中获取该字符串的代码:
char inputBuffer[10];
void setup() {
Serial.begin(9600);
}
void loop() {
while (true)
{
if (Serial.available() > 0) {
Serial.readBytes(inputBuffer, Serial.available());
delay(5000);
Serial.print("I got this ->");
Serial.print(inputBuffer);
Serial.println("<-");
}
}
}
while(true)用于测试目的。我没有得到任何打印,我也不知道问题出在哪里。我在这里看到了所有关于arduino和java的帖子,但没有找到任何有用的东西。谢谢你的帮助,如果这是一个愚蠢的问题,对不起,我是一个新手
使用rxtxcomm.jar的Im。版本:RXTX-2.2-20081207
它被解决了。我在java代码中打开端口之后放了一个thread.sleep(4000)
,现在它可以工作了。问题是,每次打开端口时,Arduino都会重置,所以当Arduino没有准备好侦听时,我就发送数据。
char inputBuffer[10];
void setup()
{
Serial.begin(9600);
}
void loop()
{
while (true)
{
if (Serial.available() > 0)
{
Serial.readBytes(inputBuffer, 10);
delay(5000);
Serial.print("I got this ->");
Serial.print(inputBuffer);
Serial.println("<-");
}
}
}
本文向大家介绍C#简单实现发送socket字符串,包括了C#简单实现发送socket字符串的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#简单发送socket字符串的实现方法,供大家参考,具体内容如下 1 打开VS,新建一个C#窗口程序 2 添加按钮 3 写按钮的事件代码 双击这个按钮 进入代码界面 输入如下内容,注意IP和端口 如果你是复制的,会发现有标红的地方,这些需要使用u
问题内容: 我正在构建Android应用程序的项目的C 方面。我需要一些信息(通过字符串和字符串数组)传递给Java应用程序(通过JNI)。我以前从未做过,相反方向的人没有C 的经验,并承认他们不能真正提供帮助。 我确实找到了以下代码(从这里开始) 但这对我来说毫无意义。通常,我不确定如何将其合并到程序的C ++端,而且我无法确切了解其工作原理。代码是否在执行该行时发出消息?还是在for循环中执行
我试图让Arduino在串口读取字符“s”时触发一个中继。该字符“s”由python根据从屏幕读取的图像发送。 我的问题是arduino似乎无法从串行端口读取数据,因为它从不执行if条件。我的猜测是这两者之间存在某种死锁(这就是为什么我将ardu.close()放在函数foo中) 这是我的arduino代码: 这是我的python代码:
我成功地将一个整数从处理发送到Arduino,但现在我想发送一个由三个整数组成的数组,但我无法让它工作。我想使用Arduino创建一个蜂鸣器反馈,哪个处理将控制激活哪个蜂鸣器。例如,从处理发送的数据应该是[1,0,1],这意味着传感器1和3应该开始工作。蜂鸣器应该能够同时激活,以防[1,1,1]通过。 这是我到目前为止的代码:我试图理解什么数据被发送回Arduino,以了解如何使用它,我不断得到一
字符串用于存储文本。 它们可用于在LCD或Arduino IDE串行监视器窗口中显示文本。 字符串对于存储用户输入也很有用。 例如,用户在连接到Arduino的键盘上键入的字符。 Arduino编程中有两种类型的字符串 - 字符数组,与C编程中使用的字符串相同。 Arduino String,它允许我们在草图中使用字符串对象。 在本章中,我们将学习字符串,对象以及Arduino草图中字符串的使用。
我有PHP知识,我想学习C#语言,但我甚至不做简单的加法。 我想得到一个组合框的值,将这个值转换为int,并能够添加另一个值 尽管已完成转换,但我有一个错误:无法将类型“int”转换为“string”。 我的代码: 谢谢你