# SerialAssistant **Repository Path**: changfengpro/SerialAssistant ## Basic Information - **Project Name**: SerialAssistant - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-28 - **Last Updated**: 2026-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 串口助手 SerialAssistant 基于 Qt6 + QSerialPort 开发的桌面串口调试工具,适用于嵌入式开发、单片机调试、上位机通信等场景。 --- ## 界面预览 ``` ┌─────────────────┬──────────────────────────────────────────┐ │ 串口配置 │ 接收区 │ │ │ [RX] [10:23:01.456] Hello World │ │ 串口号 [刷新] │ [TX] [10:23:02.123] AT+VERSION │ │ 波特率 │ [RX] [10:23:02.200] v1.0.0 │ │ 数据位 │ │ │ 校验位 │ [保存接收] [清空接收] │ │ 停止位 ├──────────────────────────────────────────┤ │ │ 发送区 │ │ [ 打开串口 ] │ [ 输入发送内容... ] [ 发 送 ] │ │─────────────────│ │ │ 接收选项 └──────────────────────────────────────────┘ │ □ HEX 显示 │ □ 显示时间戳 状态栏: 已连接: COM3 | 115200-8-None-1 RX: 128 B TX: 32 B │ ☑ 自动滚动 │───────────────── │ 发送选项 │ □ HEX 发送 │ ☑ 自动换行 │───────────────── │ 定时发送 │ □ 启用定时发送 │ 间隔(ms) [1000] └───────────────── ``` --- ## 功能特性 ### 串口配置 - 自动扫描并列出当前系统所有可用串口,显示端口名及设备描述 - 支持一键刷新串口列表 - 波特率支持常用预设:1200 / 2400 / 4800 / 9600 / 19200 / 38400 / 57600 / **115200** / 230400 / 460800 / 921600 - 支持 **Custom 自定义波特率**,选择 Custom 后可直接输入任意波特率 - 数据位:5 / 6 / 7 / **8** - 校验位:None / Even / Odd / Mark / Space - 停止位:1 / 1.5 / 2 - 串口异常(拔出、断开)自动检测并提示 ### 数据接收 - 接收区消息头部自动添加 **[RX]** 标识,颜色为绿色 - 支持 **ASCII / HEX** 双模式切换显示 - 支持 **时间戳** 显示,格式为 `[hh:mm:ss.zzz]` - 支持 **自动滚动**,始终显示最新数据 - 采用接收缓冲区 + 50ms 定时批量刷新机制,防止高频数据导致界面卡死 - 自动拉高 DTR / RTS 信号,兼容需要硬件握手的设备 ### 数据发送 - 发送后在接收区同步显示 **[TX]** 标识,颜色为橙黄色,方便对比收发内容 - 支持 **ASCII / HEX** 双模式发送 - 支持 **自动添加换行符**(CR+LF) - 支持 **回车键**快捷发送 - HEX 发送格式容错:自动忽略空格,并校验长度合法性 ### 定时发送 - 可设置发送间隔(10ms ~ 60000ms) - 支持**热修改间隔**:定时器运行中修改间隔数值立即生效,无需重启 ### 数据保存 - 接收区内容可一键保存为 `.txt` 文件 - 保存内容与界面显示完全一致,包含 [RX]/[TX] 标识、时间戳、HEX/ASCII 格式 - 文件编码为 UTF-8,中文内容不乱码 ### 状态栏 - 实时显示连接状态及串口参数(端口、波特率、校验位、停止位) - 实时统计并显示累计接收字节数(RX)和发送字节数(TX) --- ## 开发环境 | 项目 | 版本 | |------|------| | Qt | 6.x | | 构建系统 | CMake 3.16+ | | C++ 标准 | C++17 | | 依赖模块 | Qt6::Widgets、Qt6::SerialPort | --- ## 项目结构 ``` SerialAssistant/ ├── CMakeLists.txt # CMake 构建配置 ├── main.cpp # 程序入口 ├── mainwindow.h # 主窗口头文件 ├── mainwindow.cpp # 主窗口逻辑实现 └── mainwindow.ui # Qt Designer 界面布局 ``` --- ## 构建与运行 ### 1. 克隆或解压项目 ```bash # 解压 zip 包 unzip SerialAssistant.zip cd SerialAssistant ``` ### 2. 使用 Qt Creator 打开(推荐) 1. 打开 Qt Creator 2. 点击 **文件 → 打开文件或项目** 3. 选择 `CMakeLists.txt` 4. 选择已配置好的 Qt6 Kit 5. 点击左下角 **运行(▶)** 按钮 ### 3. 命令行构建 ```bash mkdir build && cd build cmake .. -DCMAKE_PREFIX_PATH=/path/to/Qt6 cmake --build . --parallel ``` > Windows 用户将 `/path/to/Qt6` 替换为实际 Qt 安装路径,例如 `C:/Qt/6.5.0/msvc2019_64` --- ## 使用说明 ### 连接串口 1. 点击 **刷新** 按钮扫描当前可用串口 2. 在下拉列表中选择目标串口 3. 配置波特率、数据位、校验位、停止位(通常保持默认 115200-8-N-1) 4. 点击 **打开串口** 按钮建立连接 5. 状态栏显示"已连接"即表示成功 ### 接收数据 - 连接成功后,设备发来的数据会自动显示在接收区,前缀为绿色 **[RX]** - 勾选 **HEX 显示** 可切换为十六进制格式查看原始字节 - 勾选 **显示时间戳** 可在每条消息前添加精确到毫秒的时间 - 勾选 **自动滚动** 可始终跟随最新数据 ### 发送数据 1. 在底部发送框输入内容 2. 点击 **发 送** 按钮或按 **回车键** 发送 3. 发送内容会同步显示在接收区,前缀为橙黄色 **[TX]** 4. 勾选 **HEX 发送** 时,请输入空格分隔的十六进制字节,例如:`AA BB CC DD` ### 定时发送 1. 在 **间隔(ms)** 输入框设置发送间隔 2. 在发送框输入要定时发送的内容 3. 勾选 **启用定时发送** 开始定时 4. 运行中可直接修改间隔数值,立即生效 5. 取消勾选停止定时发送 ### 保存数据 - 点击 **保存接收** 按钮,选择保存路径 - 文件内容与接收区显示完全一致 --- ## 常见问题 **Q: 串口列表为空?** > 检查设备是否正确连接,驱动是否安装(如 CH340、CP2102 等 USB 转串口驱动)。点击刷新重新扫描。 **Q: 能打开串口但收不到数据?** > 检查波特率等参数是否与设备一致。程序已自动拉高 DTR/RTS 信号,若设备需要特定握手指令才开始推送数据,需在发送框手动发送。 **Q: 收到的中文是乱码?** > 切换接收模式:若设备发送的是 GBK 编码,接收区会显示乱码,可勾选 HEX 显示查看原始字节,或在设备端改为 UTF-8 编码输出。 **Q: HEX 发送提示格式错误?** > HEX 字符串长度必须为偶数,例如 `AA BB` 合法,`AA B` 不合法。 **Q: 保存的文件用记事本打开乱码?** > 文件为 UTF-8 编码,Windows 旧版记事本默认用 ANSI 打开会乱码,建议用 VS Code、Notepad++ 等编辑器打开,或在记事本中选择 UTF-8 编码。 --- ## License MIT License