linux 如何发送at指令

xwbar的头像
2026-08-18 18:29:32
/
中国勇夺世界杯

Q在 Linux 上发 AT 指令前,需要先确认哪些基本条件?我想在 Linux 里给串口设备发送 AT 指令,但不太确定开始前要做哪些准备,比如设备怎么识别、串口参数怎么设置、权限要怎么处理?

A发送 AT 指令前的准备工作

你需要先确认模块是否已被 Linux 正确识别为串口设备,例如 /dev/ttyUSB0、/dev/ttyACM0 或 /dev/ttyS*。接着检查串口参数是否匹配设备要求,包括波特率、数据位、停止位、校验位和流控方式。若当前用户没有访问权限,需要将用户加入 dialout 组或使用 sudo。还要确认设备已经上电并处于可接收 AT 命令的模式,有些模块还需要关闭自动回显或数据模式干扰。

Q除了用串口工具,还有哪些方式可以在 Linux 下发送 AT 指令?我不想只依赖某个图形界面工具,Linux 环境里有没有命令行方式、脚本方式或者程序方式可以向设备发 AT 指令?

ALinux 下发送 AT 指令的常见方式

可以通过多种方式发送 AT 指令。命令行里常见的有 minicom、screen、picocom、cu,适合手动调试。若想用脚本自动化,可使用 echo、printf 搭配 cat、stty、socat 等工具直接向串口写入数据。若需要集成到应用程序里,可以用 Python 的 pyserial、C 语言的 termios,或者其他支持串口通信的库来发送和读取 AT 指令响应。

Q为什么我发出的 AT 指令没有返回内容,可能是什么原因?我已经在 Linux 里打开了串口,也发送了 AT 命令,但设备没有回显或没有任何响应,这种情况通常是哪里出了问题?

AAT 指令无响应的常见排查方向

常见原因包括串口号选错、波特率不匹配、端口被其他程序占用、设备没有进入命令模式、AT 指令结尾格式不对,以及换行符没有正确发送。很多模块需要以 CR 或 CRLF 结尾,也就是回车或回车换行。你还可以检查是否开启了回显、是否有流控影响、设备是否处于休眠状态,以及串口线是否接反或硬件连接不稳定。

Q如何在 Linux 中批量自动发送 AT 指令并读取返回结果?我希望通过脚本定时给模块发一组 AT 命令,并把每条命令的返回结果保存下来,Linux 下应该怎么做更稳妥?

A用脚本自动化发送与读取 AT 指令

可以使用 Python、Shell 或其他脚本语言来实现自动化。常见做法是先用 stty 设置串口参数,再用脚本按顺序写入 AT 命令,并读取设备返回的数据。为了提高稳定性,可以在每条命令之间加入适当等待时间,解析响应中的 OK、ERROR 或特定业务返回值,并把日志写入文件保存。若需要更高可靠性,建议使用专门的串口库处理超时、缓冲区清理和异常重连。

转转官方验寄卖操作7天无理由
新兵的“第2适应期”来了,将迎来4个变化,建议家长都了解