当前位置:首页 > JavaScript

js 实现串口

2026-03-14 17:37:08JavaScript

使用 Web Serial API 实现串口通信

Web Serial API 是现代浏览器提供的 JavaScript API,允许网页与串行设备(如 Arduino、传感器等)直接通信。以下为具体实现方法:

检查浏览器支持

if (!navigator.serial) {
  console.error('Web Serial API 不支持当前浏览器');
}

请求串口权限并打开端口

const port = await navigator.serial.requestPort();
await port.open({ baudRate: 9600 }); // 根据设备设置波特率

写入数据到串口

const writer = port.writable.getWriter();
const data = new Uint8Array([0x48, 0x65, 0x6C, 0x6C, 0x6F]); // "Hello" 的二进制数据
await writer.write(data);
writer.releaseLock();

从串口读取数据

const reader = port.readable.getReader();
while (true) {
  const { value, done } = await reader.read();
  if (done) break;
  console.log('收到数据:', new TextDecoder().decode(value));
}

关闭串口连接

await port.close();

Node.js 环境实现方案

在 Node.js 中可通过 serialport 库实现串口通信:

安装依赖

npm install serialport

基本读写示例

const { SerialPort } = require('serialport');

const port = new SerialPort({
  path: '/dev/ttyUSB0', // 设备路径
  baudRate: 9600
});

port.on('data', (data) => {
  console.log('收到数据:', data.toString());
});

port.write('AT\\r\\n', (err) => {
  if (err) console.error('写入错误:', err);
});

注意事项

  • 浏览器环境下需要 HTTPS 协议(localhost 除外)
  • 用户必须主动触发权限请求(如点击事件)
  • 不同操作系统设备路径格式不同:
    • Windows: COM3
    • Linux: /dev/ttyUSB0
    • macOS: /dev/cu.usbmodem1411

高级功能实现

自定义解析器

const { ReadlineParser } = require('@serialport/parser-readline');
const parser = port.pipe(new ReadlineParser({ delimiter: '\\r\\n' }));

parser.on('data', console.log);

错误处理

port.on('error', (err) => {
  console.error('端口错误:', err);
});

列出可用串口

js 实现串口

const { SerialPort } = require('serialport');

SerialPort.list().then(ports => {
  ports.forEach(port => console.log(port.path));
});

以上方法覆盖了从浏览器到服务端的常见串口通信场景,可根据实际需求选择对应方案。

标签: 串口js
分享给朋友:

相关文章

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

vue实现串口通信

vue实现串口通信

vue实现串口通信的方法 Vue本身不直接支持串口通信,但可以通过浏览器API或第三方库实现。以下是几种常见方法: 使用Web Serial API Web Serial API是现代浏览器提供的原…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js 多选 实现

js 多选 实现

实现多选的 JavaScript 方法 使用复选框(Checkbox)实现多选 通过 HTML 的 checkbox 元素配合 JavaScript 实现多选功能。用户可以选择多个选项,提交时获取所有…