簡體   English   中英

Arduino NodeJs串行通信問題

[英]Arduino NodeJs Serial Communication issue

我無法從NodeJs向Arduino發送數據。Serial.available()始終為假。.我不知道我的失敗是什么。有人可以幫助我嗎?

這是我的JavaScript / NodeJS代碼

var serialport = require("serialport");
var SerialPort = serialport.SerialPort;

var serialPort = new SerialPort("COM3", {
  baudrate: 9600,
         dataBits: 8, 
         parity: 'none', 
         stopBits: 1, 
         flowControl: false
});

serialPort.on("open", function () {
  console.log('open');
serialPort.on('data', function(data) {
    console.log(data);
  });
data="omg";
   for(var i=0; i<data.length; i++){
        serialPort.write(new Buffer(data[i], 'ascii'), function(err, results) {
           if(err!=null)
           {
             console.log('Error: ' + err);
           }
           else
           console.log('Results ' + results);
        });
    }
});

這是我的Arduino代碼

void setup() {
  Serial.begin(9600);
}
String inData = "";

void loop(){

    while (Serial.available() > 0) {
        char received = Serial.read();
        inData.concat(received);
        Serial.println(received);
        // Process message when new line character is received
        if (received == '\n') {
            // Message is ready in inDate
        }
    }
}

NodeJs輸出為

節點server.js建議:請使用require('serialport')而不是require('serialport').SerialPort

打開

結果:未定義

結果:未定義

結果:未定義

嘗試收聽nodeJS ^^。

更換:

var serialport = require("serialport"); var SerialPort = serialport.SerialPort;

通過

var SerialPort = require("serialport");

編輯:

您的data未在您的范圍內初始化。 嘗試這個 :

var SerialPort = require("serialport");

var serialPort = new SerialPort("COM3", {
  baudrate: 9600,
     dataBits: 8, 
     parity: 'none', 
     stopBits: 1, 
     flowControl: false
});

var _data = '';

serialPort.on("open", function () {
  console.log('open');
  serialPort.on('data', function(data) {
    console.log(data);
    _data += data;
  });
   for(var i=0; i<_data.length; i++){
    serialPort.write(new Buffer(_data[i], 'ascii'), function(err, results) {
       if(err!=null)
       {
         console.log('Error: ' + err);
       }
       else
       console.log('Results ' + results);
    });
}
});

serialPort.on('error', function(err) { console.log(err); });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM