无法使用串行端口 Node JS 库从 Arduino Uno 读取数据

Can't read data from Arduino Uno with serialport Node JS library

我正在使用 serialport@5.0.0 Node JS 库,并且之前使用它(之前的版本,4.0.7)与 GSM 调制解调器成功通信。

现在我将它与 Arduino Uno 一起使用。但是,我似乎无法像以前使用 GSM 调制解调器那样从中读取数据。

这就是我想要做的:

this.parser.on('data', (buffer) => {
  console.log('in on data');
  data += buffer.toString();
  console.log("DATA: " + data);
  var parts = data.split('\r\n');
  console.log('PARTS:', parts);
  data = parts.pop();
  console.log(data)
  console.log('POPPED DATA: ' + data);
})

我从中一无所获。我什至尝试使用解析器,因此 this.parser.on。但是我无法让它工作。

不过我可以用这个获取数据:

this.parser.on('data', console.log);

但由于我首先尝试处理数据,所以它没有用。

这是我的串口设置:

_.defaults(options, {
  baudrate: 9600,
  dataBits: 8,
  parity: 'none',
  stopBits: 1,
  flowControl: false,
  autoOpen: false,
});
this.options = options;
this.serial = new SerialPort(this.port, this.options);
this.eventEmitter = new events.EventEmitter();
this.parser = new Readline({ delimiter: '\n' });

我正在从 class 调用 serialport。是的,我打开了端口。

我也可以写端口

解决了,显然我的示例代码on.data部分的"buffer"变量已经收到了一个字符串。因此我可以将字符串打印为 console.log(buffer).

奇怪的部分是为什么 data += buffer.toString() 部分表现得很奇怪。我希望在那行之后的第一个 console.log 中至少能得到一些东西。但是它 returns 空白。