单片机设计_串口调试工具

一、设计思路

  1. HTML结构完整 - 标签闭合正确

  2. CSS样式齐全 - 浅绿色主题,响应式布局

  3. JavaScript逻辑完整 - 串口连接、读写、错误处理齐全

🎯 功能清单

功能模块 说明
串口连接 支持选择设备,配置波特率/数据位/停止位/校验位/流控
数据接收 支持字符串/HEX显示,自动滚动
数据发送 支持字符串/HEX模式,可选换行符,Ctrl+Enter快捷键
界面主题 浅绿色护眼风格

二、界面展示

三、部分代码

html 复制代码
<body>
<div class="serial-panel">
    <div class="panel-header">
        <div class="title">
            <h1>🍃 串口调试</h1>
            <div class="badge">Web Serial API</div>
        </div>
        <div class="status-area">
            <div class="led" id="statusLed"></div>
            <div class="status-text" id="statusText">未连接</div>
        </div>
    </div>

    <div class="control-bar">
        <div class="param-group">
            <label>波特率</label>
            <select id="baudRate">
                <option value="9600">9600</option>
                <option value="19200">19200</option>
                <option value="38400">38400</option>
                <option value="57600">57600</option>
                <option value="115200" selected>115200</option>
                <option value="230400">230400</option>
                <option value="460800">460800</option>
            </select>
        </div>
        <div class="param-group">
            <label>数据位</label>
            <select id="dataBits">
                <option value="7">7</option>
                <option value="8" selected>8</option>
            </select>
        </div>
        <div class="param-group">
            <label>停止位</label>
            <select id="stopBits">
                <option value="1">1</option>
                <option value="2">2</option>
            </select>
        </div>
        <div class="param-group">
            <label>校验位</label>
            <select id="parity">
                <option value="none">None</option>
                <option value="even">Even</option>
                <option value="odd">Odd</option>
            </select>
        </div>
        <div class="param-group">
            <label>流控</label>
            <select id="flowControl">
                <option value="none">None</option>
                <option value="hardware">Hardware</option>
            </select>
        </div>
        <button id="connectBtn" class="primary">🔌 连接设备</button>
        <button id="disconnectBtn" class="danger">⛔ 断开</button>
    </div>

    <div class="main-area">
        <!-- 接收区域 -->
        <div class="log-panel">
            <div class="section-title">
                <span>📥 数据接收 (RX)</span>
                <button id="clearReceiveBtn" class="clear-btn">清空接收区</button>
            </div>
            <div class="receive-area">
                <div class="log-box" id="receiveLog">
                    [等待连接串口设备...]<br>
                </div>
            </div>
        </div>

        <!-- 发送区域 -->
        <div class="send-panel">
            <div class="section-title">
                <span>📤 数据发送 (TX)</span>
                <button id="clearSendInputBtn" class="clear-btn">清空编辑区</button>
            </div>
            <div class="input-area">
                <textarea id="sendData" placeholder="输入要发送的字符串或十六进制 (根据下方模式)"></textarea>
                <div class="send-options">
                    <div class="checkbox-label">
                        <input type="checkbox" id="hexSendMode"> <span>HEX 发送模式</span>
                    </div>
                    <div class="checkbox-label">
                        <input type="checkbox" id="appendNewline" checked> <span>发送换行符 \r\n</span>
                    </div>
                    <button id="sendBtn" style="flex:1;">✈️ 发送数据</button>
                </div>
                <div class="send-options" style="margin-top: 12px;">
                    <div class="checkbox-label">
                        <input type="checkbox" id="hexReceiveMode"> <span>HEX 显示模式</span>
                    </div>
                    <div class="checkbox-label">
                        <input type="checkbox" id="autoScroll" checked> <span>自动滚动</span>
                    </div>
                    <button id="clearReceiveBtn2" class="clear-btn">清空接收</button>
                </div>
            </div>
        </div>
    </div>
    <footer>
        💡 浅绿护眼主题 | 支持HEX/字符串收发 | 有问题联系-liming-
    </footer>
</div>
相关推荐
snow@li19 分钟前
Redis:数据库语法速查表 / 全景梳理
数据库·redis·缓存
Devlive 开源社区21 分钟前
Nebula 1.6.0 发布:跨区域桶自动路由、秒传、文本/PDF 预览一次到位
数据库·sql
炸膛坦客26 分钟前
单片机/C/C++八股:(二十四)编译文件( .bin 和 .hex ,包括 .elf 和 .axf )
c语言·c++·单片机
Yunhoa33 分钟前
51单片机(DS18B20 数字温度传感器)
单片机·嵌入式硬件·51单片机
这个DBA有点耶44 分钟前
导个数据中文全变问号?字符集这事儿真没那么简单
数据库·mysql·代码规范
wuqingshun3141591 小时前
MYSQL中如果发生死锁应该如何解决?
数据库·mysql
DO_Community2 小时前
Weaviate 托管数据库现已在 DigitalOcean 上开放公测
数据库·人工智能·开源·向量数据库·weaviate
报错小能手2 小时前
索引常见面试题
数据库
Database_Cool_2 小时前
时序数据库选型:阿里云 Lindorm 时序引擎 vs InfluxDB 全维度对比
数据库·阿里云·时序数据库
其实防守也摸鱼2 小时前
渗透--损坏的对象级别鉴权漏洞(Broken Object Level Authorization, BOLA)
大数据·网络·数据库·学习·tcp/ip·安全·安全威胁分析