Nodejs和Arduino之间的串口通信

我正在尝试Arduino和Nodejs之间的沟通。 但问题是当我沟通时,我得到了正确的阅读,以及在正确的阅读之间的一些垃圾阅读。 仍然不能理解如何解决这个问题?

这里是用于从COM端口读取数据的Nodejs部分

var SerialPort = require("serialport").SerialPort; var serialport = new SerialPort("COM23",{baudrate:9600}); serialport.on('open', function(){ serialport.on('data', function(data){ console.log(data[0]); }); }); 

这是我简单的Arduino代码

  int led = 13; void setup() { Serial.begin(9600); pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); Serial.write(1); delay(1000); digitalWrite(led, LOW); Serial.write(0); delay(1000); } 

限制传输数据的大小,也为串行传输定义一个parsing器。

看看串口文档https://github.com/voodootikigod/node-serialport#parsers

你有两个select“原始”和“readline”。

开箱即用,node-serialport提供了两个parsing器,一个简单地将原始缓冲区作为数据事件发送,另一个提供熟悉的“readline”样式parsing。 要使用readlineparsing器,必须提供一个分隔符,如'\ n'

这里是node.js的一个例子。

  var sp = new SerialPort('/dev/tty.usbmodem14111', { //sp.parsers.readline('\r') //serialport.parsers.raw baudrate: 9600, parser: serialport.parsers.readline('\n') }); 

在Arduino方面,使用Serial函数println();

  Serial.println("your message to the node server"); 

我希望这有帮助。