Node.js连接Arduino时COM3端口提示无此文件或目录报错如何解决
问题原因及解决办法
报错核心为serialport库无法找到你指定的COM3端口,按以下步骤逐一排查即可:
- 确认端口号是否正确
Windows系统打开设备管理器,展开「端口(COM和LPT)」列表,查看插入的Arduino开发板对应的实际COM端口号,将代码中的COM3替换为实际值;Mac系统端口路径格式为/dev/tty.usbmodem[序号],Linux系统为/dev/ttyACM[序号],不要直接默认填写COM3。 - 排查端口占用
确认Arduino IDE的串口监视器、其他串口调试工具是否处于打开状态,串口同一时间只能被一个程序占用,关闭所有占用工具后再运行Node.js代码。 - 检查硬件连接
确认USB线是否为数据传输线(部分USB线仅支持充电无法传输数据),重新插拔USB口确认开发板正常被系统识别。 - 完善代码错误处理与执行逻辑
你当前的代码缺少端口打开成功的判断,直接执行write操作也会触发异常,同时缺少错误捕获逻辑会抛出未处理的Promise拒绝警告,修正后代码如下:
const SerialPort = require("serialport"); const Readline = require("@serialport/parser-readline"); // 此处替换为你查到的实际端口号 const port = new SerialPort("你的实际端口号",{ baudRate:9600, }); // 端口错误捕获 port.on('error', err => { console.log('端口错误:', err.message) }) const parser = new Readline(); port.pipe(parser); parser.on('data', (line) => console.log('收到数据:', line)); // 等待端口打开成功后再发送数据 port.on('open', () => { console.log('端口已成功打开') port.write("ngentod") })
内容的提问来源于stack exchange,提问作者Hamid HMB
相关产品推荐
相关产品推荐

