2016-10-03 101 views
0

我不能将数据从NodeJs发送到Arduino .. Serial.available()是错误的所有时间..我不知道什么是我的失败..任何人都可以帮助我吗?Arduino NodeJs串行通信问题

这是我的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是

节点服务器。 JS弃用:请使用require('serialport')代替 require('serialport').SerialPort

开放

结果的:undefinded

结果:undefinded

结果:undefinded

回答

0

尝试听^^的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); }); 
+0

我要去尝试兄弟:) –

+0

犯规再次合作:现在/ –

+0

什么节点在说什么? –