菜鸟科技网

蓝牙AT命令如何详解?

蓝牙模块的AT命令是用户与模块进行交互控制的重要接口,通过特定的指令集可以实现模块初始化、参数配置、数据传输、状态查询等功能,不同厂商的蓝牙模块AT命令可能存在差异,但核心逻辑和常用指令具有较高通用性,以下从基础概念、常用指令分类、参数配置及注意事项等方面进行详细解析。

蓝牙AT命令如何详解?-图1
(图片来源网络,侵删)

蓝牙模块的AT命令通常以“AT”或“AT+”开头,以回车符(\r\n)作为结束标志,模块接收到正确指令后,会返回“OK”表示执行成功,返回“ERROR”则表示指令格式错误或功能不支持,部分指令会返回具体数据,如查询类指令会以“+XXX:”前缀返回参数值,在使用AT命令前,需确保模块已正确供电,并通过串口(如UART)与主控芯片连接,波特率、数据位、停止位等串口参数需与模块配置一致。

基础指令与系统控制

基础指令主要用于模块的复位、版本查询及工作模式切换,是调试初期的常用操作。“AT”用于测试模块是否正常响应,发送后模块应返回“OK”;“AT+RESET”执行硬件复位,模块重启并恢复默认配置;“AT+VERSION”查询模块固件版本信息,返回类似“+VERSION:X.X.X”的结果;“AT+MODE?”可查询当前工作模式(如从机模式、主机模式、数据透传模式等),通过“AT+MODE=”可切换模式,0”通常表示从机模式,“1”表示主机模式。

蓝牙名称与配对指令

蓝牙名称是设备识别的重要标识,直接影响用户搜索和配对体验。“AT+NAME?”用于查询当前模块名称,默认名称可能为“BT_MODULE”或厂商自定义名称;“AT+NAME=”可修改名称,长度一般不超过20字节,名称中不支持空格和特殊字符,配对相关指令中,“AT+PSWD?”查询默认配对密码(通常为“1234”或“0000”),“AT+PSWD=”可设置4-6位数字密码;“AT+INIT”初始化SPP(串口配置文件)服务,用于经典蓝牙设备配对连接;“AT+CMODE=”设置连接模式,“0”表示指定地址连接,“1”表示任意设备可连接,“2”表示指定地址优先连接,需与主机模式配合使用。

数据传输与串口配置

数据透传模式下,串口参数配置直接影响通信稳定性。“AT+UART?”查询当前串口参数,返回格式为“+UART:,,,”,如“+UART:9600,8,1,0”表示波特率9600、8位数据位、1位停止位、无校验;“AT+UART=,,,”可修改参数,波特率常见值有9600、115200等,需确保主控芯片与模块参数一致,数据发送指令中,“AT+SEND=,”用于发送指定长度的数据(十六进制格式),如“AT+SEND=2,AA,55”发送两个字节0xAA和0x55;透传模式下,串口接收到的数据会自动转发至蓝牙已配对设备,无需通过AT指令控制。

蓝牙AT命令如何详解?-图2
(图片来源网络,侵删)

状态查询与事件通知

模块状态查询有助于实时掌握设备连接和工作情况。“AT+STATE?”返回当前状态,如“+STATE:DISCONNECTED”(未连接)、“+STATE:CONNECTED”(已连接)、“+STATE:PAIRED”(已配对);“AT+ADDR?”查询模块蓝牙地址,返回格式为“+ADDR:XX:XX:XX:XX:XX:XX”,地址用于主机设备搜索和指定连接,事件通知指令中,“AT+NOTI=”控制状态提示,设置为“1”时,模块会在连接/断开等事件发生时通过串口返回通知信息,如“+CONNECT:XX:XX:XX:XX:XX:XX”表示设备已连接。

低功耗与指令扩展

低功耗蓝牙(BLE)模块支持额外指令以优化能耗。“AT+ADVDATA=”设置广播数据,长度通常不超过31字节,用于向周围设备广播信息;“AT+GAPADVINT=”设置广播间隔(单位为ms),间隔越小,广播频率越高,功耗越大;部分模块支持“AT+SLEEP”进入休眠模式,可通过串口唤醒或特定按键唤醒,适用于电池供电场景,指令扩展方面,厂商可能定制特殊功能,如“AT+I2C”控制I2C接口、“AT+GPIO”配置GPIO电平,具体需参考模块数据手册。

注意事项

  1. 指令格式规范:AT指令必须以大写“AT”开头,参数与指令间用“=”连接,多个参数用逗号分隔,结尾需加回车换行符。
  2. 波特率匹配:模块默认波特率可能为9600或38400,若修改后无法通信,需通过复位或特定按键恢复默认设置重新配置。
  3. 指令响应超时:部分指令执行需较长时间(如配对),若超时未返回响应,可检查模块是否处于正确工作模式或电源是否稳定。
  4. 数据手册差异:不同厂商模块的AT指令集可能存在差异,务必以对应模块的数据手册为准,避免因指令不兼容导致功能异常。

相关问答FAQs

Q1:为什么发送AT指令后模块没有响应?
A:可能原因包括:①串口参数(波特率、数据位等)与模块配置不匹配,需使用“AT+UART?”查询当前参数并调整;②模块未正确初始化或处于非AT指令模式(如透传模式),需通过“+++”或复位指令切换至AT模式;③硬件连接问题,如TX/RX交叉接反、电源电压不足(需3.3V或5V稳定供电),或模块损坏。

Q2:如何实现蓝牙模块与手机自动重连?
A:需配置以下参数:①设置“AT+CMODE=1”(任意设备连接)或“AT+CMODE=2”(指定地址优先连接),后者需通过“AT+LINK=

”绑定已配对设备的MAC地址;②开启自动重连功能,部分模块支持“AT+AUTOCONN=”,设置为“1”后,模块开机后会自动尝试与上次配对的设备连接;③确保模块在断电后重新上电时能自动进入工作模式(非休眠模式),可通过“AT+POWERON”测试自动启动功能。

蓝牙AT命令如何详解?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇