NodeJS没有从serialport接收数据

时间:2018-02-11 07:17:11

标签: javascript node.js serial-port

我能够获得串口列表,并成功打开我想要的端口。但是,收到的数据事件永远不会触发。打开后,端口会发送少量数据。我已经验证端口是使用USB监视器发送数据。

// Open event example
const SerialPort = require('serialport');
var port = new SerialPort('COM220', { autoOpen:true, baudRate: 921600 });


port.on('open', () => {
  console.log('Port Opened');

});

// Switches the port into "flowing mode"
port.on('data', function (data) {
  console.log('Data:', data);
});

// Read data that is available but keep the stream from entering "flowing mode"
port.on('readable', function () {
  console.log('Data:', port.read());
});

1 个答案:

答案 0 :(得分:0)

我有一些想法:

  1. 该波特率非常高,不是串行端口的标准。为了确保两个设备都可以匹配,我会降低很多。 38,4? 9600?这足以证明您的理论。
  2. 您可以登录 console.log(port)端口本身,并开始比较行为并查看获得的结果。
  3. 可读模式与正常模式不同。结果是什么?

    port.on('data',function(data){ console.log(data.toString()); }

  4. 您可以通过在数据字符后附加字符串来创建自己的缓冲区。

    var bfr =“”; port.on('data',function(data){ bfr + = data.toString(); console.log(bfr); }