使用Java简单串行连接器将pc与arduino连接

使用Java简单串行连接器将pc与arduino连接,java,arduino,jssc,Java,Arduino,Jssc,我试图使用Java简单串行连接器在我的计算机和arduino uno之间建立连接。我正在尝试使用下面列出的代码来完成它。不知怎的,它不工作(连接到arduino引脚7的led二极管在运行我的程序时没有打开,但当我使用artuino软件的串行监视器时,它会打开)。有人知道为什么吗 Java项目代码: import jssc.SerialPort; import jssc.SerialPortException; public class Main { public static

我试图使用Java简单串行连接器在我的计算机和arduino uno之间建立连接。我正在尝试使用下面列出的代码来完成它。不知怎的,它不工作(连接到arduino引脚7的led二极管在运行我的程序时没有打开,但当我使用artuino软件的串行监视器时,它会打开)。有人知道为什么吗

Java项目代码:

    import jssc.SerialPort;
import jssc.SerialPortException;

public class Main {

    public static void main(String[] args) {
        //In the constructor pass the name of the port with which we work
        SerialPort serialPort = new SerialPort("COM3");
        try {
            //Open port
            serialPort.openPort();
            //We expose the settings. You can also use this line - serialPort.setParams(9600, 8, 1, 0);
            serialPort.setParams(SerialPort.BAUDRATE_9600,
                                 SerialPort.DATABITS_8,
                                 SerialPort.STOPBITS_1,
                                 SerialPort.PARITY_NONE);
            //Writes data to port
            serialPort.writeBytes("Test".getBytes());
            //Closing the port
            serialPort.closePort();
        }
        catch (SerialPortException ex) {
            System.out.println(ex);
        }
    }
}`
Arduino代码:

void setup() {
  Serial.begin(9600); //Ustawienie prędkości transmisji
  pinMode(7, OUTPUT);
  digitalWrite(7, LOW);
}

void loop() {
  if( Serial.available() > 0){
    digitalWrite(7, HIGH);

  }

}

我想,你的密码错了

我是这样做的

串行写入(str) 串行写入(buf,len)

val:作为单个字节发送的值 str:作为一系列字节发送的字符串 buf:作为一系列字节发送的数组
len:缓冲区的长度我想你的密码是错的

我是这样做的

串行写入(str) 串行写入(buf,len)

val:作为单个字节发送的值 str:作为一系列字节发送的字符串 buf:作为一系列字节发送的数组
len:缓冲区的长度

我会在发送字节后等待一段时间,然后再关闭端口,尝试一个线程。在writeBytes和closePortOk之间睡眠。要使此功能正常工作,您必须将Thread.sleep放在serialPort.setParams和serialPortwriteBytes之间:)感谢您的回答Petter Fribergmy如果您喜欢更多的controll checkout java.nio,请编写您的答案(解决方案),检查已解决,以便其他人可以从中受益。在关闭端口之前,我会在发送字节后等待一段时间,尝试一个线程。在writeBytes和closePortOk之间睡眠。要使此功能正常工作,您必须将Thread.sleep放在serialPort.setParams和serialPortwriteBytes之间:)感谢您的回答Petter Fribergmy如果您喜欢更多的controll checkout java.nio,请编写您的答案(解决方案),检查已解决,以便其他人可以从中受益。Have fun始终欢迎指向潜在解决方案的链接,但如果该链接不再可用,请为将来的访问者添加一些详细信息。始终欢迎指向潜在解决方案的链接,但如果该链接不再可用,请为将来的访问者添加一些详细信息。
Serial.write(val)