nodejs获取串口数据serial

步骤:

1.新建文件夹serialDemo

2.在文件夹里,新建文件serial.js,代码如下

var portName = 'COM2'; //定义串口名1

var SerialPort = require('serialport');

let serialPort = new SerialPort( //设置串口属性

"COM2", {

  baudRate: 9600,  //波特率

  dataBits: 8,    //数据位

  parity: 'none',  //奇偶校验

  stopBits: 1,  //停止位

  flowControl: false ,

  autoOpen:false //不自动打开

}, false);

serialPort.open(function(error){

  if(error){

    console.log("打开端口"+portName+"错误:"+error);

  }else{ 

  console.log("打开端口成功,正在监听数据中");

    serialPort.on('data',function(data){

    console.log('接收串口数据data:',data);

    })

  }

});

// 错误提示:TypeError: SerialPort.list no longer takes a callback and only returns a promise

// list()弃用回调形式了,已经采用promise返回了,所以这里要用promise接收数据

let rel = SerialPort.list();

rel.then(

data=>{ console.log('成功,串口列表为data:',data)},

error=>{console.log('失败err:',error)}

)


3.安装serialport插件

  3-1首先,初始化package.json文件,运行 npm init -y

  3-2然后,运行 npm i serialport,安装serialport插件

4. 启动程序

node serial.js 或者 nodemon serial.js

5.可能的报错有:

    5-1:打开端口COM2错误:Error: Opening COM2: File not found

原因是:电脑没有连接串口

解决办法:可以采用虚拟串口软件Virtual Serial Port Driver,模拟效果

// 启用了Virtual Serial Port Driver就可以用了,注意我这里用了里面的英文版的才正常

// Virtual Serial Port Driver下载地址为:http://www.pc6.com/softview/SoftView_605149.html


    5-2:如果用了回调,可能提示弃用了回调,采用了promise:UnhandledPromiseRejectionWarning: TypeError: SerialPort.list no longer takes a callback and only returns  a promise


上面的代码已经解决这个问题了,已经采用promise形式了

如有疑问,可以留评!

文章借鉴:https://www.jianshu.com/p/c20076049f5b

你可能感兴趣的:(nodejs获取串口数据serial)