- CP210x / FTDI / PL2303 补齐 setSignals()(编码与各自初始化序列一致) - 新增 index.d.ts(TypeScript 类型声明)、examples/minimal.html(最小接入示例) - 新增 .gitea/workflows/ci.yml(push 时跑离线单测)、.gitattributes(强制 LF)、CHANGELOG.md - package.json 补 repository / homepage / bugs / types / engines - 单测 16 项全部通过:node test/driver.test.mjs
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>ch340-webusb 最小示例</title>
|
||||
<style>
|
||||
body { font:14px/1.6 system-ui,sans-serif; margin:0 auto; max-width:640px; padding:16px; }
|
||||
button { padding:10px 14px; font-size:14px; }
|
||||
pre { background:#0b0d12; color:#d8dee9; padding:10px; border-radius:8px; height:220px; overflow:auto; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h3>ch340-webusb 最小示例</h3>
|
||||
<p>
|
||||
<button id="connect">连接 CH340</button>
|
||||
<button id="close" disabled>断开</button>
|
||||
<input id="text" value="hello" size="12">
|
||||
<button id="send" disabled>发送</button>
|
||||
</p>
|
||||
<pre id="log"></pre>
|
||||
|
||||
<script src="../ch340-webusb.js"></script>
|
||||
<script>
|
||||
// 1. 选设备(必须由用户点击触发)
|
||||
document.getElementById('connect').onclick = async () => {
|
||||
const port = await TamaCh340.requestPort({ baudRate: 115200 });
|
||||
// 2. 打开:内部完成 CH340 芯片初始化(波特率 / LCR / DTR-RTS)
|
||||
await port.open({ baudRate: 115200 });
|
||||
const writer = port.writable.getWriter();
|
||||
const reader = port.readable.getReader();
|
||||
|
||||
(async () => { // 3. 收
|
||||
for (;;) {
|
||||
const { value, done } = await reader.read();
|
||||
if (done) break;
|
||||
log('RX ' + Array.from(value).map(b => b.toString(16).padStart(2, '0')).join(' '));
|
||||
}
|
||||
})();
|
||||
|
||||
document.getElementById('send').onclick = () => // 4. 发
|
||||
writer.write(new TextEncoder().encode(document.getElementById('text').value + '\r\n'));
|
||||
document.getElementById('send').disabled = false;
|
||||
document.getElementById('connect').disabled = true;
|
||||
document.getElementById('close').disabled = false;
|
||||
log('已连接 ' + JSON.stringify(port.getInfo()) + ' chip=' + port.chip);
|
||||
};
|
||||
|
||||
document.getElementById('close').onclick = async () => { location.reload(); };
|
||||
function log(s) { const el = document.getElementById('log'); el.textContent += s + '\n'; el.scrollTop = el.scrollHeight; }
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user