【问题标题】:Can't read data from Arduino Uno with serialport Node JS library无法使用串行端口节点 JS 库从 Arduino Uno 读取数据
【发布时间】:2017-09-04 09:45:09
【问题描述】:

我正在使用 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' });

我正在从一个类中调用serialport。是的,我打开了端口。

我也可以写入端口。

【问题讨论】:

  • 您能否使用 Arduino IDE 中内置的“串口监视器”与串口/Arduino 代码进行通信?
  • 在 Arduino 串行监视器上,我可以完美通信。实际上带有所有分隔符。也可以通过 this.parser.on('data', console.log); 获取数据;

标签: node.js arduino serial-port arduino-uno node-serialport


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 2017-10-18
    • 1970-01-01
    相关资源
    最近更新 更多