[英]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.