# serial_assistant_win_cpp_qcoder_20250910 **Repository Path**: jyukun/serial_assistant_win_cpp_qcoder_20250910 ## Basic Information - **Project Name**: serial_assistant_win_cpp_qcoder_20250910 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-18 - **Last Updated**: 2025-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Windows 串口调试助手 一个用C++和Win32 API开发的Windows串口调试助手程序。 ## 功能特性 - ✅ 串口设备自动检测和列表显示 - ✅ 支持常用波特率:9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 - ✅ 支持数据位配置:5, 6, 7, 8位 - ✅ 支持停止位配置:1, 1.5, 2位 - ✅ 支持校验位配置:无校验, 奇校验, 偶校验, 标记, 空格 - ✅ 实时数据接收和显示 - ✅ 文本和十六进制数据发送 - ✅ 十六进制数据显示 - ✅ 发送和接收数据清空 - ✅ 串口连接状态管理 - ✅ 异步数据接收(后台线程) ## 系统要求 - Windows 10 或更高版本 - Visual Studio 2019 或更高版本 (支持C++17) - CMake 3.16 或更高版本 ## 编译说明 ### 方法1:使用CMake直接构建 1. 使用提供的批处理脚本: ```bash build-cmake.bat ``` 2. 或者手动执行命令: ```bash cmake -B build -S . cmake --build build --config Release ``` 编译结果位于:`build/bin/Release/SerialAssistant.exe` ### 方法2:使用Visual Studio 1. 生成Visual Studio项目文件: ```bash build-vs2022.bat ``` 2. 或者手动执行: ```bash cmake -B vs2022 -G "Visual Studio 17 2022" -A x64 ``` 3. 打开`vs2022/SerialAssistant.sln`在Visual Studio中编译 ### 使用CMake构建 1. 打开命令提示符或PowerShell 2. 进入项目目录 3. 创建构建目录并编译: ```bash cmake -B build cmake --build build --config Release ``` ## 使用说明 ### 基本操作 1. **连接串口** - 点击"刷新"按钮更新可用串口列表 - 选择目标串口 - 设置波特率、数据位、停止位、校验位 - 点击"连接"建立串口连接 2. **发送数据** - 在发送区域输入要发送的数据 - 可选择文本模式或十六进制模式发送 - 点击"发送"按钮发送数据 3. **接收数据** - 接收到的数据会自动显示在接收区域 - 可选择文本模式或十六进制模式显示 - 点击"清空接收"清除接收区域内容 ### 十六进制模式 - **十六进制发送**:启用后,发送区域的内容会被解析为十六进制数据 - 例如:输入"48 65 6C 6C 6F"会发送"Hello" - 支持空格分隔,自动忽略非十六进制字符 - **十六进制显示**:启用后,接收到的数据会以十六进制格式显示 - 例如:接收到"Hello"会显示为"48 65 6C 6C 6F" ## 项目结构 ``` SerialAssistant/ ├── src/ # 源码目录 │ ├── main.cpp # 程序入口 │ ├── SerialPort.h # 串口通信类头文件 │ ├── SerialPort.cpp # 串口通信类实现 │ ├── SerialAssistant.h # 主窗口类头文件 │ └── SerialAssistant.cpp # 主窗口类实现 ├── build/ # CMake构建目录 │ └── bin/Release/ # 编译输出 │ └── SerialAssistant.exe ├── vs2022/ # Visual Studio项目文件目录 │ ├── SerialAssistant.sln # VS解决方案文件 │ └── SerialAssistant.vcxproj # VS项目文件 ├── build-cmake.bat # CMake构建脚本 ├── build-vs2022.bat # VS项目生成脚本 ├── CMakeLists.txt # CMake构建配置 └── README.md # 项目说明文档 ``` ## 技术实现 ### 核心技术 - **Win32 API**:界面开发和系统调用 - **Windows串口API**:CreateFile, ReadFile, WriteFile等 - **多线程**:异步数据接收 - **事件驱动**:数据接收回调机制 ### 串口通信 - 使用Windows串口API进行底层通信 - 支持重叠I/O(Overlapped I/O)实现异步操作 - 自动检测系统可用串口设备 - 支持所有标准串口参数配置 ### 界面设计 - 纯Win32 GUI,无第三方依赖 - 响应式布局,支持窗口大小调整 - 直观的用户界面设计 ## 注意事项 1. 确保选择的串口没有被其他程序占用 2. 在连接串口前,请确认串口参数设置正确 3. 发送十六进制数据时,请确保输入格式正确 4. 程序需要管理员权限来访问某些串口设备 ## 故障排除 ### 常见问题 1. **无法打开串口** - 检查串口是否被其他程序占用 - 确认串口设备是否正常连接 - 尝试以管理员权限运行程序 2. **接收不到数据** - 检查串口参数设置是否正确 - 确认对方设备是否正在发送数据 - 检查硬件连接是否正常 3. **发送失败** - 检查串口连接状态 - 确认发送数据格式是否正确(特别是十六进制模式) ## 许可证 本项目基于MIT许可证开源。 ## 版本历史 - v1.0.0 - 初始版本 - 基本串口通信功能 - GUI界面实现 - 文本和十六进制数据收发