蓝牙模块普通数据收发AT指令|学习笔记

简介: 快速学习蓝牙模块普通数据收发AT指令

开发者学堂课程【嵌入式之RFID开发与应用2020版蓝牙模块普通数据收发AT指令】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/665/detail/11168


蓝牙模块普通数据收发AT指令

 

本节内容学习AT指令,AT指令的操作方式相当于把底层协议栈隐藏,即不需要关注底层的实现,只需要关注它的使用即可。

 

一、AT指令说明

1.注意事项

1AT指令是ASCII码字符串,并区分大小写只要有串口调制助手就可以实现指令末尾必须有\r表示结束发送数据勾选enter就表示带\r。

image.png

2AT指定只能在非透传模式下有效与手机连接后进入透传模式,发送模块任何数据都是透传数据。比如发送AT+VER时,它会以字符串发送,这时就不是一个指令,所以不能在联网时发送,联网时发送必须将引脚PWRC和底板的PWRC拉成低电平才会把透传数据变成指令。

image.png

3如果有对模块参数进行修改,软复位后才生效。对名称,地址修改后一定要执行指令AT+RESET。进行软复位后才能保存,并且永久生效。

4APP UUID列表

UUID在网络安全中经常使用,指唯一识别码,因为在网络安全,通信安全中,它是由计算机中断,时间,cpu的频率等综合因素生成的随机数字,数字几乎不会重复。对于蓝牙而言,UUID是一种服务,也就是说我们的蓝牙支持很多功能,最常见的是读,写,控制,每一种功能都称作一种服务,甚至在安卓开发下的蓝牙开发中,底下会有UUID的服务特征值的表格,使用服务需要具体查询数值。

➢服务UUID: FFEO

➢特征UUID: FFE1 (非MESH透传,只与连接设备通信)

➢特征UUID: FFE2 (功能设置、MESH下操作LED/I0/PWM)

➢透传模式只提供特征UUID服务,但可以通过拉低PWRC

进行AT指令的发送。

2.指令说明

1蓝牙查询版本,输入AT+VER回车即可

image.png

除了版本,还可以查询MAC地址,可以直接点击指令旁边的enter查询,MAC地址通常不能修改,出厂时固定的。MAC地址是区分设备的唯一标识,名称不能区分设备,比如10个蓝牙,名字改成一样,当手机发送信标接收蓝牙时,名字一样但MAC地址不一样,所以可以连接设备。

2软复位,指令为AT+RESET,一般进行修改后就需要软复位。

3设置/查询蓝牙名称,指令为AT+NAME,名字可以修改,可以通过在指令后面添加名字进行修改如AT+NAMEtest,修改网络地址也是直接在后面添加,返回ok即表示修改成功,修改成功后再执行指令就是新的名称。这里需改成AT+NAMEqfedo,因为后续需要组网,组网需要保证每个模块同一个网络名称。如果需要修改永久生效,则一定要执行AT+RESET。

image.png

4设置/查询设备类型,指令为AT+CLSS<Param>和AT+CLSS。一般默认是A0,工作在透传模式

5设置-断开连接,指令为AT+DISC,如果和手机建立了连接,那可以主动断开,但主动断开的前提是模块的PWRC引脚需要处于低电平,否则指令无意义。手机连接的意思是手机可以搜索到qfedo蓝牙设备并且点击连接,这时蓝牙和手机就处于连接状态。

6设置/查询-组网ID,指令为AT+NETID(Param)和AT+NETID,这里的查询结果是112233445566,一共12个字节,这12个字节可以任意修改。如果蓝牙支持mesh功能,就是NETID不相同没有办法加入同一个网络中,如果相同就已经加入了同一个网络中,表示任何设备就可以进行通信。

7设置/查询-组网短地址,指令为AT+MADDR(param)和AT+MADDR,短地址是指我们完成组网需要名称相同,网络ID相同但是短地址不能相同,短地址是设备的编号,编号如果和别的设备相同,发送数据时的重要地址就是短地址,设备地址如果相同,发送的数据就会被10个设备收到。这种数据的收发称为主播,但支持了主播后续麻烦,因为后续需要和10个设备其中一个通信,就需要单播,但这时已经不支持单播了,主播和单播不同时存在。

3.串口MESH无线控制指令

1串口MESH数据发射(一对多、多对一、多对多)

指令

目标短路地址

数据

AAFB

2byte

10Byte

例子1:向所有模块发送广播数据: 12233445566发送指令格式: AAFBFFFF1 12233445566

例子2:向短地址为02模块发送112233数据发送指令格式: AAFB0002112233

每次收发数据指令都已AAFB开始,AAFB指普通数据。

如果是透传模式下,直接发送的任何字符串都是ASCII码。但如果需要联网进行点对点通信或广播通信,就不能直接发送ASCII码,必须发十六进制,且十六进制带有格式,格式为以AAFB开头并且添加两个字节的短地址,之前学习地址是一个字节且最多连接255个设备,但这里有两个字节,可能是需要预留一个字节。高字节永远是00,低字节是00-ff,ff是广播地址。发送字节的长度不超过10个。

接下来打开两台设备:30和31

查看设备的名称是否都是quedo,网络地址是不是1-6,31设备短地址是37,30设备短地址是36

image.png

如果要给这两台设备发送数据,就需要输入AAFB0037/36+十六进制数据如果一定要发字符,就需要找到字符对应的十六进制,1对应字符31,2对应32,A对应41,等等。如图,给31设备发送AAFB003132333435,31设备接收到的是12345。12345以十六进制显示是3132333435,前面还有三个字节AA,35,05,35代表发送端地址,AA代表接收普通数据,05表示发送数据长度。

image.png

如果需要两台设备都可以接收,就需要使用广播,就需要高字节和低字节全部改为FFF。

image.png

说明:发送广播时,目标短路地址为FFFF,发送单播时,短地址高字节必须为00,例如0002,表示向02设备发送数据。

2串口MESH数据接收

指令

目标短路地址

数据长度

数据

AA

1Byte

1Byte

10Byte

BB

1Byte

1Byte

10Byte

以上表格为MESH数据透传、与功能控制接收数据格式

指令AA表示此数据包为透传数据(普通数据),目标短路地址和数据长度都是一个字节,数据长度最多为10个字节。

指令BB表示此数据包为功能数据(PIM、键值、LED)等

例子1:串口接收到AA02050102030405表示接收到02短地址模块发来的5个字节数据,数据内容是0102030405。

例子2:串口接收到BB2903E7F101表示收到的不是串口数据,而是控制命令,数据是短地址为29的设备发出,数据长度为3字节,E7F101 命令为设置0OUT1引脚输出高电平。

不管数据是发送还是接收,通常情况下需要结合mcu来控制,只有mcu才能组包,组包才能收发。

相关文章
|
物联网
低功耗蓝牙(BLE)设备常用的4种角色
对于主从设备的其它说法,大家需要了解一下。对于Central和Peripheral有多种说法,上面我们说的是主从,还有客户端/服务端,中心设备/外围设备,我们这里简单介绍一下,客户端(Client)对应上面的Central,接收数据;服务端(Server)对应上面的额Peripheral,提供数据,这个需要和网站的服务器/客户端区别一下;中心设备(Central)和外围设备(Peripheral),其实上面叫中心设备和外围设备。上面主设备(Master)和从设备(Slave)应该对应主/从。这个根据个人习惯,主/从用的比较多,如果在蓝牙中提到这些知道就行了。
1668 0
|
XML 物联网 API
Android Ble蓝牙App(五)数据操作
Android Ble蓝牙App(五)数据操作
1965 0
|
存储 安全 算法
【BLE】 BLE配对绑定保姆级介绍
实现蓝牙通信安全,除了paring/bonding这种底层方式,用户也可以在应用层去实现相同功能,两者从功能上和安全性上没有本质区别,只不过应用层自己实现的话,需要自己选择密码算法,密钥生成,密钥交换等,如果你不是这方面的专家,你的应用就有可能会存在安全漏洞。设备跟手机绑定成功后,手机再次重连这个设备时,就会自动跳过service discovery过程,换句话说,配对的时候手机会把设备所有服务和characteristic的handle保存下来,二次重连的时候,直接用以前保存的handle值去操作设备。
5347 1
【BLE】 BLE配对绑定保姆级介绍
|
监控 物联网 数据安全/隐私保护
蓝牙调试工具集合汇总
蓝牙调试工具集合汇总
965 0
|
数据可视化 中间件 API
FreeRTOS记录(一、熟悉开发环境以及CubeMX下FreeRTOS配置)
熟悉 在 STM32 CubeMX 下面的 FreeRTOS 使用
3347 1
FreeRTOS记录(一、熟悉开发环境以及CubeMX下FreeRTOS配置)
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
2841 0
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
|
物联网 API 数据库
一文带你认识蓝牙 GATT 协议
正所谓磨刀不误砍柴工,我们有必要先深入的学习一下 GATT 以及 GATT 相关的一些知识。 本文我们就来了解一下 蓝牙 GATT 到底是什么?同时了解下我们使用的 ESP32-C3 GATT示例的工程的代码结构。
8878 5
一文带你认识蓝牙 GATT 协议
计算机组成原理(6)-----指令执行过程
计算机组成原理(6)-----指令执行过程
1872 0
|
移动开发
USB-TTL连接ESP8266不识别串口/串口助手回复乱码
【11月更文挑战第14天】当USB-TTL连接ESP8266出现不识别串口或乱码问题时,应检查硬件连接(线路、电源)、串口设置(驱动、串口选择、数据位等)及软件固件(AT指令、固件版本、串口助手)。确保所有设置正确无误。
1898 0