You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确发送AT命令?寻求可靠可自动化的替代实现方案

自动化发送AT命令的实用方案

现成工具

  • atinout:专门针对AT命令设计的轻量工具,自动处理CRLF换行,支持直接发送命令并捕获响应,完美适配脚本自动化。用法示例:
    # 发送单条AT命令并输出响应
    echo "AT" | atinout - /dev/ttyUSB0 -
    # 批量执行命令文件(每行一条AT命令),输出写入响应文件
    atinout commands.txt /dev/ttyUSB0 responses.txt
    
    脚本里可通过检查输出中的OK/ERROR判断命令执行状态,排查问题更直接。
  • picocom:轻量串口工具,支持非交互模式发送命令,结合重定向即可实现自动化:
    echo -e "AT\r" | picocom --baud 9600 --noinit --exit-after=2 /dev/ttyUSB0
    
  • screen:虽为终端复用工具,但也支持非交互发送命令:
    # 后台启动串口会话
    screen -dmS modem /dev/ttyUSB0 9600
    # 发送AT命令
    screen -S modem -X stuff 'AT\r'
    # 导出会话输出到文件
    screen -S modem -X hardcopy modem_response.txt
    

编程库

  • Python pyserial:适合快速编写自动化脚本,完全可控串口通信流程,支持逐条命令发送、响应验证:
    import serial
    
    def send_at_command(port, baud_rate, command):
        with serial.Serial(port, baud_rate, timeout=3) as ser:
            ser.write(f"{command}\r\n".encode('utf-8'))
            response = ser.read_until(b'OK').decode('utf-8')
            return response
    
    # 示例:发送AT命令并检查执行结果
    resp = send_at_command('/dev/ttyUSB0', 9600, 'AT')
    if 'OK' in resp:
        print("命令执行成功")
    else:
        print(f"执行失败,响应内容:{resp}")
    
  • libserialport:C/C++跨平台串口库,适合开发高性能调制解调器控制程序,支持精细配置串口参数和异步通信。

改进现有脚本的建议

  • 取消随机休眠,改为等待响应后再发送下一条命令,比如通过grep捕获OK信号后再继续执行。
  • 先通过stty配置串口参数,确保通信参数与调制解调器匹配:
    stty -F /dev/ttyUSB0 9600 cs8 -cstopb -parenb
    

内容的提问来源于stack exchange,提问作者Raven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 11:45:28