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形式了
如有疑问,可以留评!