将字符串从Java发送到Arduino(简单示例)
问题解决了。我放了一个将字符串从Java发送到Arduino(简单示例),java,serial-port,arduino,Java,Serial Port,Arduino,问题解决了。我放了一个线程。sleep(4000)在java代码中打开端口后,现在可以工作了。问题是每次打开端口时arduino都会重置。当我发送数据时,arduino没有准备好倾听 char inputBuffer[10]; void setup() { Serial.begin(9600); } void loop() { while (true) { if (Serial.available()
线程。sleep(4000)代码>在java代码中打开端口后,现在可以工作了。问题是每次打开端口时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("<-");
}
}
}
我对arduino和Java还不熟悉,但我做了一个非常简单的程序,我不明白为什么它不工作
我向与arduino(COM5)对应的串行端口发送一个字符串:
以及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("<-");
}
}
}
char输入缓冲区[10];
无效设置(){
Serial.begin(9600);
}
void循环(){
while(true)
{
如果(Serial.available()>0){
Serial.readBytes(inputBuffer,Serial.available());
延迟(5000);
Serial.print(“我得到了这个->”;
串行打印(输入缓冲区);
Serial.println(“问题解决了。在java代码中打开端口后,我放了一个线程.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("<-");
}
}
}
char输入缓冲区[10];
无效设置()
{
Serial.begin(9600);
}
void循环()
{
while(true)
{
如果(Serial.available()>0)
{
串行读取字节(inputBuffer,10);
延迟(5000);
Serial.print(“我得到了这个->”;
串行打印(输入缓冲区);
Serial.println(“您可以使用Java Arduino通信库。它可以在这里找到:。(请确保下载两个JAR)然后您的代码将如下所示:
import arduino.*;
class JavaArduinoComm {
public static void main(String[] args) {
Arduino obj = new Arduino('PortDescription', BAUD_RATE);
obj.openConnection();
}
}
然后,您可以使用以下任一方法:
String serialRead(int limit)-返回一个字符串,该字符串包含与limit值一样多的读数。建议读取
void serialWrite(String s)-一次将整个字符串的内容写入序列。作为字符串写入序列
void serialWrite(String s,int noOfChars,int delay)-将字符串的内容逐渐写入序列。它以递增的方式写入字符串,每次使用“noOfChars”字符,每次写入之间有一个“delay”毫秒的暂停。作为字符串写入序列。建议写入字符串
void serialWrite(char c)-将单个字符写入数据类型char中的序列
void serialWrite(char c,int delay)-将单个字符写入数据类型char中的串行,并在之后将线程暂停延迟毫秒。建议写入字符
你能告诉我们哪个库(及其版本)吗您正在用于串行I/O?您确定要打开COM5吗?您确定在获取outputstream后可以更改serialPort参数吗?我使用RXTXcomm.jar。版本:RXTX-2.2-20081207。我放置了跟踪,我确定它打开了COM5,并且它更改了serialPort参数。我发现了这个示例,可能有助于在获取数据之前放置serialPort参数输出流。仍然不工作。但是感谢您的支持observation@takluiper将您在问题中编辑的解决方案作为答案发布,并接受它,这样这个问题就不会显示为未回答。谢谢,干杯!