当前位置: 首页 > news >正文

一文带你入门 AT 指令集:从串口通信到模块控制

在嵌入式开发、物联网以及通信模块调试中,有一个你迟早会遇到的重要工具 —— AT 指令

无论是 GSM 模块打电话发短信、WiFi 模块联网、蓝牙模块配对,还是 GNSS 模块获取定位,AT 指令都扮演着人机通信的桥梁。


AT 指令能做什么?(结合模块场景)

AT 指令的本质是 “通过串口发送文本命令,直接控制模块功能”
根据不同模块,AT 指令能完成的任务大致分为两大类:

① 移动通信模块(GSM / GPRS / LTE)

  • 设备控制:模块开机、复位、查询版本信息

  • 网络接入:注册运营商网络,检查信号强度

  • 通话与短信:拨打电话、发送/接收短信

  • 移动数据:PPP 拨号上网,建立 TCP/UDP 连接,上报数据到服务器

② 终端通信模块(WiFi / 蓝牙 / GNSS)

  • WiFi 模块:连接路由器、建立 TCP/UDP、MQTT

  • 蓝牙模块:搜索、配对、数据透传

  • GNSS 模块:开启定位、输出经纬度、查询定位状态

大白话:AT 指令就是“模块的遥控器”。在 GSM/LTE 模块里,它能打电话、发短信、上网;

在 WiFi/蓝牙/GNSS 模块里,它能连路由、配对手机、获取定位。学会 AT 指令,就能直接操作通信模块的所有核心功能。


1. 什么是 AT 指令?

AT 指令(Attention Command)是一种用于控制调制解调器(Modem)或通信模块的命令集。

如今,它被广泛应用于:

  • 移动模块:GSM / GPRS / LTE 模块(SIM800、Quectel、移远)

  • 终端模块:WiFi 模块(ESP8266、ESP32)、蓝牙模块(HC-05)、GNSS 模块(Neo-6M)

 本质:通过串口发送的“文本命令”,用来控制模块的行为

大白话:AT 指令的本质就是“发文本命令,模块照做”。最早用于调制解调器,现在几乎所有通信模块都支持。


2. AT 指令的基本格式

类型

说明

示例

测试命令

查询模块是否支持参数

AT+CMD=?

查询命令

读取模块当前配置

AT+CMD?

设置命令

配置模块参数

AT+CMD=参数

执行命令

执行某操作

AT+CMD

通用规则:

  • 所有命令以 AT 开头;

  • 命令以 回车换行(\r 或 \r\n) 结束;

  • 返回结果通常为:

    • OK:执行成功

    • ERROR:命令错误或参数非法

    • +CMD: xxx:返回查询结果

大白话:AT 指令的格式很规律:测试、查询、设置、执行。记住:都要以 AT 开头、回车结尾,返回 OK 就成功。


3. 常见模块 AT 指令示例

移动模块(SIM800 为例)

AT              // 测试串口是否通信正常AT+CSQ          // 查询信号强度AT+CREG?        // 查询网络注册状态ATD10086;       // 拨打电话AT+CMGF=1       // 设置短信为文本模式AT+CMGS="手机号" // 发送短信


WiFi 模块(ESP8266 为例)

AT                       // 测试模块是否响应AT+CWMODE?               // 查询当前工作模式AT+CWMODE=1              // 设置为 Station 模式AT+CWJAP="SSID","PWD"    // 连接 WiFiAT+CIPSTART="TCP","ip",port // 建立 TCP 连接AT+CIPSEND=5             // 准备发送数据


GNSS 模块(ATGM 为例)

AT+CGPS=1          // 打开 GPSAT+CGPSINFO        // 获取定位信息AT+CGPSSTATUS?     // 查询定位状态


大白话:不同模块的 AT 指令大同小异:GSM 模块能打电话发短信,WiFi 模块能联网传数据,GNSS 模块能获取经纬度。就是一套“问答语言”,用在哪儿就干哪儿的事。


4. AT 指令调试工具

常见串口调试工具:

  • Windows:SSCOM、XCOM、SecureCRT

  • Arduino IDE 串口监视器(适合 ESP32、蓝牙等)

  • Linux:minicom、picocom

串口常见配置:

  • 波特率:9600 / 115200(视模块而定)

  • 数据位:8

  • 停止位:1

  • 校验:None

  • 结束符:\r 或 \r\n

大白话:要和模块聊天,需要一个“串口聊天工具”。配置好波特率和结束符,才能让模块听懂你说话。


5. 实战调试技巧

  • 判断串口是否连通AT → 返回 OK 即正常

  • 模块“死机”:用 AT+RST 复位,或检查电源供电是否足够

  • 批量测试命令:用串口助手的“宏命令/脚本”功能自动发送

打包话:调试秘诀:先发 AT 看有没有 OK,不行就复位+查供电,命令多了就用脚本,省力高效。


6. 自定义 AT 指令(高级玩法)

在 STM32 / MCU 项目中,也可以仿照模块写自己的 AT 指令:

if (strncmp(cmd, "AT+LED=ON", 9) == 0) {
led_on();
send_response("OK\r\n");
} elseif (strncmp(cmd, "AT+LED=OFF", 10) == 0) {
led_off();
send_response("OK\r\n");
} else {
send_response("ERROR\r\n");
}

大白话:你不仅能用模块的 AT 指令,还能写自己的。别人只要发命令,就能控制你的设备,这就是 DIY 的乐趣。


7. 常见问题 FAQ

  • Q: AT 指令能发中文吗?
    A: 直接不行,大多数模块只支持 ASCII,需要转 UCS2/PDU。

  • Q: 为什么返回 ERROR?
    A: 参数不合法、格式错误、模块未初始化或不支持该状态。

  • Q: 为什么响应慢?
    A: 模块需要等待初始化,比如 GSM 模块上电要 5~10 秒。

大白话:AT 指令常见坑:中文要转码;ERROR 多半是命令/状态问题;响应慢是因为模块还没准备好。



文章转载自:

http://cyfvapgQ.wjhdn.cn
http://LQK5M4gj.wjhdn.cn
http://A1LEeX7q.wjhdn.cn
http://xLbFXnDh.wjhdn.cn
http://hvMqoZny.wjhdn.cn
http://u3qYKbeX.wjhdn.cn
http://bpePGZNY.wjhdn.cn
http://XIzBXSvG.wjhdn.cn
http://timn9TCU.wjhdn.cn
http://Y6J5itSI.wjhdn.cn
http://23J1WkzE.wjhdn.cn
http://2Dlr6yVA.wjhdn.cn
http://gYpubFcy.wjhdn.cn
http://6SYekDfE.wjhdn.cn
http://s2jDjrNx.wjhdn.cn
http://xEoBXS2c.wjhdn.cn
http://UfUennGP.wjhdn.cn
http://fiFvls6Z.wjhdn.cn
http://zthc8IZJ.wjhdn.cn
http://e8w5eLQl.wjhdn.cn
http://R16tFnQX.wjhdn.cn
http://G2dfIYho.wjhdn.cn
http://oxeiIPK0.wjhdn.cn
http://4jamoPB3.wjhdn.cn
http://S7h7qbv1.wjhdn.cn
http://EeJFcBLY.wjhdn.cn
http://rhPag2rc.wjhdn.cn
http://C2FQDnxQ.wjhdn.cn
http://hTBDu02L.wjhdn.cn
http://R5xG4zbD.wjhdn.cn
http://www.dtcms.com/a/362429.html

相关文章:

  • 【Qt开发】按钮类控件(二)-> QRadioButton
  • lua脚本在redis中执行是否是原子性?
  • 每次开机弹出‘killer network manager launcher’链接无应用打开”解决方案
  • 【Lua】题目小练13
  • CodeForge v25.0.3 发布:Web 技术栈全覆盖,编辑器个性化定制新时代
  • 分页功能设计
  • Docker镜像指南:从核心命令到离线迁移实战
  • 实时视频链路的产业化路径:多场景应用与长期思考
  • 力扣:2458. 移除子树后的二叉树高度(dfs序)
  • leetcode111. 二叉树的最小深度
  • 前缀和之距离和
  • 基于SQLite的智能图片压缩存储系统:代码解析与实战应用
  • Time-MOE 音频序列分类任务
  • form表达和实体类通常有什么不同
  • C#中的克隆:从理论到实践
  • Elasticsearch Java开发(SpringBoot)
  • 从零开始的云计算生活——第五十六天,临深履薄,kubernetes模块之etcd备份恢复和集群升级指南
  • Prettier代码格式化工具测评:支持JS/TS/Vue多语言,兼容ESLint实现团队代码格式统一
  • 在 PySpark 中解锁窗口函数的力量,实现高级数据转换
  • 什么是Token?——理解自然语言处理中的基本单位
  • 毕业项目推荐:68-基于yolov8/yolov5/yolo11的水稻虫害检测识别系统(Python+卷积神经网络)
  • Python OpenCV图像处理与深度学习: Python OpenCV图像配准入门
  • 深度学习中的数据增强实战:基于PyTorch的图像分类任务优化
  • 云计算学习100天-第43天-cobbler
  • 【linux仓库】万物至简的设计典范:如何用‘文件’这一个概念操纵整个Linux世界?
  • 【数据分享】土地利用shp数据分享-内蒙古
  • Python应用——ffmpeg处理音视频的常见场景
  • 谷歌AdSense套利是什么?怎么做才能赚到钱
  • 安卓QQ闪照获取软件(支持TIM)
  • 各省市信息化项目管理办法中的网络安全等级保护如何规定的?