本文介绍一个专为 LCUS-1 型 USB 继电器(或任何支持串口控制的继电器模块)设计的轻量级控制程序。该程序使用 C++ 原生 Windows API 通过 CH340 等串口芯片发送十六进制指令,实现继电器的吸合、断开与定时功能,适用于 Windows 10/11 系统。


在这里插入图片描述
在这里插入图片描述

预编译程序

项目已封装为独立的可执行文件,无需配置开发环境或编译源码,开箱即用。

  1. 获取程序:从项目仓库的release下载 USB继电器控制器.exe
  2. 运行与注意:直接运行程序。部分安全软件可能会误报,请在运行时暂时允许或将其加入白名单。
  3. 功能特性:程序界面支持选择串口号、手动开启/关闭继电器以及设置定时关闭。

项目仓库地址github


源码编译

如果你想了解其实现原理、进行二次开发或自定义功能,可以参考以下步骤从源码编译。

1. 开发环境配置

1.1 安装 C++ 编译器 (MinGW-w64)

我们推荐使用 MSYS2 来获取完整的 GCC 工具链。

  1. 访问 https://www.msys2.org/ 下载并安装。
  2. 打开 MSYS2 UCRT64 终端。
  3. 执行以下命令安装编译工具链:
    pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
    
    出现提示时,输入 y 并按回车确认。
1.2 配置系统环境变量

将编译器的 bin 目录添加到系统 PATH,以便在任意位置调用 g++

  • 打开“系统属性” -> “高级” -> “环境变量”。
  • 在“系统变量”中编辑 Path,新建一项并添加:
    C:\msys64\ucrt64\bin
    
  • 保存后,重启你的终端或 IDE 使配置生效。
1.3 安装 VS Code 插件(可选但推荐)

如果你使用 VS Code,安装以下插件可以极大提升开发体验:

  • C/C++ (Microsoft):提供智能提示、代码跳转和调试支持。
  • Code Runner (Jun Han):支持一键运行代码片段。

2. 硬件准备与代码配置

2.1 确认串口号 (COM Port)

将你的 USB 继电器(或 CH340 模块)插入电脑,然后通过以下任一方式查看其分配的串口号:

  • 打开“设备管理器”,展开“端口 (COM 和 LPT)”查看。
  • 使用串口调试助手软件(如友善串口助手)自动检测。
2.2 修改源码并编译
  1. 打开项目中的 serial.cpp 源文件。
  2. 找到并修改以下关键参数以匹配你的硬件:
    // 修改串口号,例如 COM10
    CreateFileA("\\\\.\\COM10", ...); // 注意:COM10及以上端口必须使用 “\\\.\\” 前缀
    
    // 波特率(通常无需修改)
    // dcb.BaudRate = CBR_9600;
    
    // 修改为你的继电器控制指令(十六进制数组)
    unsigned char data1[] = {0xA0, 0x01, 0x01, 0xA2}; // 吸合指令示例
    unsigned char data2[] = {0xA0, 0x01, 0x00, 0xA1}; // 断开指令示例
    
  3. 在终端中,进入源码目录,使用以下命令编译:
    g++ serial.cpp -o serial.exe -lsetupapi
    
  4. 运行生成的可执行文件:
    .\serial.exe
    

常见问题

  • Q: 程序报错“错误:无法打开串口”。
    A: 请按以下步骤排查:

    1. 确认 USB 设备已正确连接。
    2. 检查“设备管理器”中的 COM 口号是否与代码中 CreateFileA 函数指定的完全一致。
    3. 确认是否有其他软件(如串口调试助手)占用了该端口,请先关闭它们。
  • Q: 发送指令后继电器无响应。
    A: 可能是指令间隔太短。源码中两条指令间有 Sleep(120);(120毫秒)的延时。如果硬件响应较慢,可以尝试将此值增大,例如改为 Sleep(1000);(1秒)。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐