菜鸟科技网

at命令串口助手如何正确配置使用?

核心概念:at 命令和串口助手

我们需要明确这两个角色在自动化任务中的分工:

at命令串口助手如何正确配置使用?-图1
(图片来源网络,侵删)
  1. at 命令 (任务计划程序)

    • 它是什么at 是 Windows 系统自带的一个命令行工具,用于安排在特定日期和时间运行命令和程序,它本质上是 “任务计划程序” 的命令行版本。
    • 它的作用at 命令不直接发送串口数据,它的核心作用是 “指挥官”“闹钟”,它负责在指定的时间点 启动 一个程序或脚本,而这个程序/脚本才是真正负责发送串口数据的“执行者”。
  2. 串口助手

    • 它是什么:串口助手(如 SSCOM, PuTTY, Tera Term, 或用 Python/Node.js/C# 等语言编写的自定义脚本)是一个运行在电脑上的程序,用于与串口设备进行通信(发送数据、接收数据)。
    • 它的作用:串口助手是 “执行者”“士兵”,它接收 at 命令的启动指令,然后按照预设的逻辑,通过指定的串口向目标设备发送特定的命令(AT+RESET)。

工作流程总结: at 命令(指挥官) --> 在设定时间 --> 启动 --> 串口助手脚本(士兵) --> 发送 --> 串口数据 --> 到 --> 目标设备


准备工作

在开始之前,请确保你已经:

at命令串口助手如何正确配置使用?-图2
(图片来源网络,侵删)
  1. 硬件连接:你的电脑已经通过 USB 转串口线连接好了目标设备(如单片机、模块等),并且电脑已经正确识别了该串口(在“设备管理器”中可以看到,如 COM3)。
  2. 选择串口助手
    • 图形界面方案:像 SSCOM 这样的串口调试助手,优点是直观,但自动化能力较弱,通常需要配合脚本启动器。
    • 脚本方案(推荐):使用 Python、C#、VBScript 等脚本语言来编写串口发送程序,这是最强大、最灵活的自动化方案,我们主要以 Python 为例进行讲解。

实现步骤

我们将分三步走:

  1. 编写“执行者”脚本:一个能发送串口数据的程序。
  2. 使用 at 命令“调度”:让这个脚本在指定时间运行。
  3. 进阶:编写更复杂的任务

创建串口发送脚本(以 Python 为例)

Python 有一个非常强大的库 pyserial,可以轻松实现串口通信。

  1. 安装 pyserial: 打开命令提示符(CMD)或 PowerShell,运行:

    pip install pyserial
  2. 编写 Python 脚本: 创建一个名为 send_at_command.py 的文件,将以下代码复制进去。请务必根据你的实际情况修改 COM_PORTBAUD_RATE

    # send_at_command.py
    import serial
    import time
    # --- 请根据你的实际情况修改以下参数 ---
    COM_PORT = 'COM3'       # 你的串口号,如 COM3, COM4
    BAUD_RATE = 9600        # 波特率,必须与目标设备一致
    COMMAND_TO_SEND = 'ATI\r\n' # 你想发送的命令,'AT+RESET\r\n' 或 'ATI\r\n'
    # --------------------------------------
    def send_command():
        try:
            # 打开串口
            ser = serial.Serial(COM_PORT, BAUD_RATE, timeout=1)
            print(f"成功打开串口 {COM_PORT}")
            # 等待一小段时间,确保串口稳定
            time.sleep(2)
            # 发送命令
            print(f"正在发送命令: {COMMAND_TO_SEND.strip()}")
            ser.write(COMMAND_TO_SEND.encode('utf-8'))
            # 等待并读取设备的响应(可选)
            print("等待设备响应...")
            time.sleep(3) # 给设备一些处理时间
            if ser.in_waiting > 0:
                response = ser.read(ser.in_waiting).decode('utf-8', errors='ignore')
                print("设备响应:")
                print(response)
            else:
                print("未收到设备响应。")
            # 关闭串口
            ser.close()
            print("串口已关闭。")
        except serial.SerialException as e:
            print(f"错误: 无法打开串口 {COM_PORT},请检查串口是否存在或被其他程序占用。")
            print(f"详细信息: {e}")
        except Exception as e:
            print(f"发生未知错误: {e}")
    if __name__ == '__main__':
        send_command()
  3. 测试脚本: 在命令行中运行这个脚本,确保它能正常工作:

    python send_at_command.py

    如果一切正常,你的串口助手应该能看到发送的命令,并且目标设备会有相应的反馈。

使用 at 命令调度脚本

我们让 at 命令来启动这个 Python 脚本。

  1. 打开管理员权限的命令提示符at 命令需要管理员权限才能执行,请在开始菜单中搜索 cmd,右键点击“命令提示符”,选择“以管理员身份运行”。

  2. 基本语法at \\\\computername time command

    • \\\\computername:如果是在本地电脑执行,可以省略或写 localhost,如果是在局域网内的另一台电脑上执行,需要写那台电脑的名称。
    • time:指定运行时间,格式为 HH:MM(24小时制)。
    • command:要执行的命令。
  3. 示例:在晚上 11 点执行脚本 假设现在是下午 3 点,你希望脚本在晚上 11 点(23:00)运行。

    at 23:00 "python C:\path\to\your\script\send_at_command.py"

    注意

    • 路径最好使用双引号 括起来,特别是路径中包含空格时。
    • 确保 Python 已经被添加到了系统的环境变量 PATH 中,这样系统才能找到 python 命令,如果没有,你需要使用完整的 Python 解释器路径,
      at 23:00 "C:\Python39\python.exe C:\path\to\your\script\send_at_command.py"
  4. 查看已安排的任务

    at

    你会看到一个类似下面的列表,显示所有已安排的任务及其ID号。

    ID  Date                    Status
    ---
     1  2025/10/27 23:00:00      OK
  5. 删除已安排的任务: 如果你不需要某个任务了,可以使用它的 ID 号来删除。

    at 1 /delete

进阶 - 使用 at 命令的更多选项

at 命令非常灵活,你可以通过选项来控制任务的执行。

  • 每天重复执行: 使用 /every 选项。

    at 23:00 /every:M,T,W,Th,F,S,Su "python C:\path\to\your\script\send_at_command.py"

    这里的 M,T,W,Th,F,S,Su 分别代表周一到周日,你也可以只选几天,/every:M,F 表示只在周一和周五执行。

  • 交互式模式: 如果你需要输入密码或者进行交互,可以使用 /interactive 选项。对于我们的串口脚本,通常不需要这个选项。

    at 23:00 /interactive "my_program.exe"

替代方案:schtasks 命令(更现代)

虽然 at 命令经典,但微软已经推荐使用更强大、更灵活的 schtasks 命令来替代它。schtasks 是“任务计划程序”的命令行接口,功能更全面,支持更多触发条件(如系统启动、用户登录等)。

使用 schtasks 实现相同功能

  1. 创建一个基本任务

    schtasks /create /tn "MySerialTask" /tr "python C:\path\to\your\script\send_at_command.py" /sc once /st 23:00
    • /tn "MySerialTask":任务名称。
    • /tr "...":要运行的程序/命令(任务运行)。
    • /sc once:计划类型,这里是“一次”。
    • /st 23:00:开始时间。
  2. 创建每天重复的任务

    schtasks /create /tn "DailySerialTask" /tr "python C:\path\to\your\script\send_at_command.py" /sc daily /st 02:00
    • /sc daily:计划类型为“每天”。
    • /st 02:00:每天凌晨2点执行。
  3. 列出所有任务

    schtasks /query
  4. 删除任务

    schtasks /delete /tn "MySerialTask" /f
    • /f:表示强制删除,无需确认。

总结对比

特性 at 命令 schtasks 命令
定位 经典、简单的任务计划器 现代、功能强大的任务计划器
权限 需要管理员权限 同样需要管理员权限
功能 功能相对基础 功能非常强大,支持多种触发器、条件、操作
推荐度 适用于简单、临时的任务 强烈推荐,是 Windows 自动化的标准工具
语法 at time "command" schtasks /create /tn name /tr "command" ...

对于串口自动化任务,特别是需要长期、稳定、复杂调度的场景,强烈建议你直接学习和使用 schtasks,但理解 at 命令的原理对于掌握自动化任务调度非常有帮助。

分享:
扫描分享到社交APP
上一篇
下一篇