内容目录
网上的代码跑起来有问题,所以摸了下坑,简单写一下吧。
安装
直接使用npm install serialport
,就可以安装成功。
使用
获取当前串口列表
const { autoDetect } = require("@serialport/bindings-cpp");
const Binding = autoDetect();
Binding.list().then((ports) => {
console.log(ports);
});
结果如下
[
{
path: 'COM3',
manufacturer: 'Silicon Labs',
serialNumber: '0001',
pnpId: 'USB\\VID_10C4&PID_EA60\\0001',
locationId: 'Port_#0003.Hub_#0001',
friendlyName: 'Silicon Labs CP210x USB to UART Bridge (COM3)',
vendorId: '10C4',
productId: 'EA60'
}
]
这个也是网上搜到的都是错的问题,已经不能直接用SerialPort.list()
了
打开串口
const { SerialPort } = require("serialport");
const port = new SerialPort({
path: "COM3", // 串口路径
baudRate: 115200 //波特率
});
port.on("open", () => {
console.log("Serial port opened");
// 这里就可以写你的发送内容了
});
port.on("data", (data) => {
// 这里的data是串口响应的内容 类型是ArrayBuffer
console.log(data.toString('hex')); // 将数据转换为十六进制字符串以便查看
})
发送数据
比如你要发送的数据是 00 22 00 22 00
port.write([0x00, 0x22, 0x00, 0x22], (err) => {
if (err) {
console.error("Error writing to serial port:", err);
} else {
console.log("Message sent");
}
});
发送数据后,你可以通过.on("data")事件监听器来接收串口的响应数据。