用户工具

站点工具


ocrobot:alpha:cc2541:main

目录

ALPHA CC2541 蓝牙4.0 BLE模块

ALPHA CC2541是一款蓝牙4.0 BLE模块,默认状态为从机透传,可以非常方便的与手机相连。

什么是BLE

从蓝牙4.0 开始有两个分支,经典4.0和BLE4.0,经典4.0 就是传统的3.0蓝牙升级而成,向下兼容。而BLE 4.0 是一个新的分支,不向下兼容。BLE 是低功耗蓝牙的缩写,顾名思义,其功耗较低。

哪些设备支持BLE

  • iOS 平台:Iphone4s或者更高型号, Ipad 3或者更高型号等都支持BLE,无须做MFI认证。
  • Android平台: 安卓平台比较混乱,一般而言默认安装Android 4.3或更高系统的手机都是BLE。

为什么在系统蓝牙界面下找不到BLE 设备

手机蓝牙默认工作在经典模式下,您需要通过程序来实现搜索,配对连接和通迅的整个过程。

  • IOS系统:请从苹果商店下载LightBlue。
  • Android:从市场搜索“BLE 串口”关键字,会搜到呼入BLE蓝牙串口,BLE调试工具等等工具。

BLE 的传输速度

BLE 的物理带宽只有1M,实际传输速度在1~6KB 之间。具体需要根据你使用的环境和项目进行验证,如果有可能,请尽可能的用高一点的波特率,会获得较好的通讯效果。

收发字节限制问题

我们的BLE模块,通过串口接收和发送无字节限制。

  • 在iOS 系统下,与模块通讯时,目前iOS 系统最大可以支持90 字节的发送量,但是研究发现,iOS 内部是分包的,并且分包效率不高,因此请您将超过20 个字节的数据进行分包发送。
  • 在Android 系统下,与模块通讯时,每次发送给模块的字节不能超过20字节,如果要发送超过20字节的数据,请分包发送。

使用BLE模块需要注意的问题

BLE 不是设计为传输大量数据的,但是其有距离远(100英尺/60 米),功耗低(休眠模式下9~800uA)等优势,请根据您的项目需求进行选型。

AT指令集

使用 AT 指令的时机?

当模块不处于休眠模式,没有建立蓝牙连接的情况下,可以通过串口使用 AT 指令.当模块建立了蓝牙连接的时候,如果配置了 AT+MODE1 或者AT+MODE2 的话,可以通过远端蓝牙收发 AT 指令.

1.测试或断开连接指令

指令应答参数
ATOK
OK+LOST

模块处于待机状态时,会通过串口返回: “OK”
模块处于连接状态时,会断开连接并返回:”OK+LOST”, 前提是设置了AT+NOTI1

2.查询 ADC 转换值

指令应答参数
AT+ADC[P1]?OK+Get:0.00P1: 3,4,5,6,7,8,9,A,B
Map to PIO3~ PIOB

该指令用于查询 PIO3 到 PIOB 口的 ADC 数据。参考电压为3V3.

3.查询本机 MAC 地址

指令应答参数
AT+ADDR?OK+LADD:MAC地址

4.查询/设置广播方式

指令应答参数
AT+ADTY?OK+ Get:[P1]P1: 0 ~ 3
0: 允许任意设备搜索连接
1: 允许上次成功设备连接(在上电的 1.28 秒之内)
2: 允许广播和搜索
3: 只广播
Default: 0
AT+ADTY[P1]OK+ Set:[P1]

注:从模式下可用指令

5.查询/设置 ANCS 开关

指令应答参数
AT+ANCS?OK+ Get:[P1]
AT+ANCS[P1]OK+ Set:[P1]P1: 0 ~ 1
0: Off
1: Open
Default: 0

Note1: Must execute AT+TYPE3 command first
Note2: Please send AT+RESET to restart module if you set value 1.
Note3: Added in V524 version

6.查询/设置白名单开关(只允许 3 个指定地址链接)

指令应答参数
AT+ALLO?OK+ Get:[P1]
AT+ALLO[P1]OK+ Set:[P1]P1: 0 ~ 1
0: Off
1: Open
Default: 0

注:从模式下可用指令

7.查询/设置白名单地址

指令应答参数
AT+AD[P1]??OK+Get:[P2]P1: 1 ~ 3
P2: 蓝牙地址
如: 0017EA0943AE
AT+AD[P1][P2]OK+Set[P2]

查询白名单地址 1:
Send: AT+AD1??
Recv: OK+Get:001122334455 (001122334455 为蓝牙地址)

设置白名单地址 1:
Send: AT+AD1001122334455 (001122334455 为蓝牙地址)
Recv: OK+Set:001122334455

8.查询/设置广播时间间隔

指令应答参数
AT+ADVI?OK+ Get:[P1]P1: 0 ~ F
0: 100ms
1: 152.5 ms
2: 211.25 ms
3: 318.75 ms
4: 417.5 ms
5: 546.25 ms
6: 760 ms
7: 852.5 ms
8: 1022.5 ms
9: 1285 ms
A: 2000ms
B: 3000ms
C: 4000ms
D: 5000ms
E: 6000ms
F: 7000ms
HMSoft Default: 0
HMSensor Default: 9
AT+ADVI[P1]OK+ Set:[P1]

1285ms 为 IOS 系统所建议的最大值. 也就是说,1285ms 是苹果允许的,但是响应扫描和连接的时间会变长.

9.查询/设置上电后模块的 PIO 输出状态

指令应答参数
AT+BEFC?OK+ Get:[P1]P1: 000 ~ 3FF
Default: 000
AT+BEFC[P1]OK+ Set:[P1]

P1 的值转为二进制后为 00XXXXXXXXXX,共计 12 位,从左到右分别对应着 PIO0~PIOB 管脚,其中左侧第一位和第二位为系统占用,设置无效,必须置零,其他位上的 X 代表 PIO 口的状态,X=1 代表此 PIO 口输出高电平,X=0 代表此 PIO 口输出低电平。

e.g.:设置上电后模块 PIO2~PIOB 全部输出高电平
Send: AT+BEFC3FF
Recv: OK+Get:3FF (下次模块上电后,PIO2~PIOB 会输出高电平)
Note: AT+MODE1 模式下(PIO 采集模式)此指令不生效
Note:如果要查询当前 PIO 口状态,请使用 AT+PIO??
Note: Added in V527

10.查询/设置连立远程蓝牙连接之后模块的 PIO 输出状态

指令应答参数
AT+AFTC?OK+ Get:[P1]Para: 000 ~ 3FF
Default: 000
AT+AFTC[P1]OK+ Set:[P1]

P1 的值转为二进制后为 00XXXXXXXXXX,共计 12 位,从左到右分别对应着 PIO0~PIOB 管脚, 其中左侧第一位和第二位为系统占用,设置无效,必须置零,其他位上的 X 代表 PIO 口的状态,X=1 代表此 PIO 口输出高电平,X=0 代表此 PIO 口输出低电平。

e.g.:设置建立蓝牙远程连接后模块 PIO2~PIOB 全部输出高电平
Send: AT+BEFC3FF
Recv: OK+Get:3FF (建立蓝牙远程连接之后,PIO2~PIOB 会输出高电平)
Note: AT+MODE1 模式下(PIO 采集模式)此指令不生效
Note:如果要查询当前 PIO 口状态,请使用 AT+PIO??

11.查询/设置电量监控开关

指令应答参数
AT+BATC?OK+ Get:[P1]P1: 0 ~ 1
0: Off
1: On
Default: 0
AT+BATC[P1]OK+ Set:[P1]

12.查询电量信息

指令应答参数
AT+BATT?OK+Get:[P1]P1: 000~100

该指令仅对电池供电的方案有效。100 % = 3V, 0% = 2V。

有三种方式得到电量信息
A.电量值已经包含在广播包里,无须连接仅扫描一下就可以得到电量信息。

  • Android 系统: 信息格式: 0x07, 0x16, 0x00, 0xB0, 【FLAG 字节】, 【温度值】, 【湿度值】【电量值】,在编程时,只需要对扫描到的设置信息进行拆分即可。
  • iOS 系统: 系统搜索回调函数中的 NSDictionary 结构中,对该结构进行拆分,Service为 0xB000 的 UUID 的 Key 值包含四个字节,分别是【FLAG 字节】, 【温度值】, 【湿度值】和【电量值】

B. 在模块未连接到远端蓝牙的情况下,通过串口发送 AT+BATT?得到电量。
C. 用 AT+MODE1/2 将模块切换到非透传模式,建立蓝牙连接之后,远端设备可以发 AT+BATT?得到电量。

13.设置 BIT7 兼容模式

指令应答参数
AT+BAUD?OK+Get:[P1]P1: 0~1
0: 不兼容
1: 兼容
AT+BAUD[P1]OK+Set:[P1]

该指令用于兼容某些串口设置为数据位 7,停止位 2 的设备,如无必要请不要随意使用。

14.查询、设置波特率

指令应答参数
AT+BAUD?OK+Get:[P1]P1:0~8
0=9600;
1=19200;
2=38400;
3=57600;
4=115200;
5=4800;
6=2400;
7=1200;
8=230400;
Default:0(9600)
AT+BAUD[P1]OK+Set:[P1]

设置波特率为 38400 例子如下:
发送:AT+BAUD2
返回:OK+Set:2
注意: 切换到1200后将不支持AT指令进行配置,并且收发误码需要您自行控制,建议每次收发不超过 10 个字节,直到在待机状态下按下 PIO0,模块会自动恢复到出厂设置
注:该指令执行后,须重新上电新设置的参数才能生效。

指令应答参数
AT+COMI[P1]OK+ Get [P1]
OK+ Set [P1]
P1: ? , 0 ~ 9
?: 查询
0=7.5ms
1=10ms
2=15ms
3=20ms
4=25ms
5=30ms
6=35ms
7=40ms
8=45ms
9=4Seconds
Default: 3 (20ms)

该指令为主模式指令,从模式下仅发送更改请求是否接受取决于主模式

指令应答参数
AT+COMA[P1]OK+ Get [P1]
OK+ Set [P1]
P1: ? , 0 ~ 9
?: 查询
0: 7.5ms
1: 10ms
2: 15ms
3: 20ms
4: 25ms
5: 30ms
6: 35ms
7: 40ms
8: 45ms
9: 4Seconds
Default: 7 (40ms)

该指令为主模式指令, 从模式下仅发送更改请求是否接受取决于主模式。
最大连接间隔不能小于最小连接间隔,无则无效。

指令应答参数
AT+COLA[P1]OK+ Get [P1]
OK+ Set [P1]
P1: ? , 0 ,1,2,3,4
?: 查询
0 为不延迟,1~4 为可以跳过 P1 个连接间隔
Default: 0

该指令为主模式指令, 从模式下仅发送更改请求是否接受取决于主模式。

指令应答参数
AT+COSU[P1]OK+ Get [P1]
OK+ Set [P1]
P1: ? , 0 ~ 9
?: 查询
0: 100ms
1: 1000ms
2: 2000ms
3: 3000ms
4: 4000ms
5: 5000ms
6: 6000ms
Default: 6(6000ms)

该指令为主模式指令, 从模式下仅发送更改请求是否接受取决于主模式。

19.设置从模式更新连接参数开关

指令应答参数
AT+COUP[P1]OK+ Get [P1]
OK+ Set [P1]
P1: ? , 0 ~ 1
?: 查询
0: 不主动更新参数
1: 主动更新参数
Default: 0

该指令为从模式指令。

20.连接最后一次连接成功的从设备

指令应答参数
AT+CONNLOK+CONN[Para]Para: L, N, E,F
L:连接中
N:空地址
E:连接错误
F:连接失败

该指令为主模式、手动工作模式指令。使用前须满足 AT+ROLE1,AT+IMME1。若模块没有记住最后一次成功连接过设备地址,则不响应。若远程设备异常断电或是已经和别的设备建立连接,则 OK+CONNF 需要 10秒左右才会返回。

注:此指令只有在主设备时才有效;从设备时不接受此指令,发送此指令没有回复,也不执行

21.连接搜索返回列表中的从设备

指令应答参数
AT+CONN[P1]OK+CONN[P2]P1: 0~5
P1: 蓝牙地址 如: 0017EA0943AE
P2: A, E, F
A: 连接中
B: 连接错误
F: 连接失败

该指令为主模式、手动工作模式指令。使用前须满足 AT+ROLE1,AT+IMME1,AT+DISC?条件。

注: 该指令取决于 AT+DISC?的返回值,下标从 0 开始,比如 AT+DISC?返回了3 个从机,那么可以使用 AT+CONN0, AT+CONN1 或者 AT+CONN2 指令.一次搜索过程,模块内部可以存储前 6 个搜到的设备,对于这前 6 个搜到的设备您可以使用下标去连接,对于超了 6 个的设备,您可以使用 AT+CO 指令来按地址连接.

注: 若远程设备异常断电或是已经和别的设备建立连接,则 OK+CONNF 需要 10 秒左右才会返回。

注:此指令只有在主设备时才有效;从设备时不接受此指令,发送此指令没有回复,也不执行。

22.连接指定 MAC 地址的设备

指令应答参数
AT+CO[P0][P1]OK+CO[P0][P0][P2]P0: N, 0, 1, 2
N: Normal connect
0: 静态地址
1: 静态随机地址
2: 随机地址
P1: 蓝牙 MAC 地址。
P2: E, F, 0~5
E: 连接错误
F: 连接失败
A: 尝试连接中

该指令为主模式、手动工作模式指令。使用前须满足 AT+ROLE1,AT+IMME1条件。
P0 参数可由 AT+DISC?指令扫描得到.
若远程设备异常断电或是已经和别的设备建立连接,则 OK+CONNF 需要10秒左右才会返回。

23.查询 PIO4~PIO11 的输出(输入)状态

指令应答参数
AT+COL??OK+Col:[P1]P1:00~FF
P1 为 16 进制参数,总共8 个 Bit,每个 Bit 代表一个 PIO 状态。

如:发送 AT+COL??
返回 OK+Col:00
解释如下:00 转换为 2 进制则为:“00000000”,对应着 PIO4~PIO11 为低电平。
如返回OK+Col:FF,转换成2进制则为:“11111111”,对应着PIO4~PIO11为高电平。

注:在 AT+MODE1 模式下,代表 PIO4~PIO11 的输入状态。
在 AT+MODE2 模式下,代表 PIO4_~PIO11 的输出状态。
在 AT+MODE0 模式下,该返回值无意义。

24.清除设备配对信息

指令应答参数
AT+CLEAROK+CLEAR

清除成功连接过的设备地址码信息。

25.查询\设置 PIO 采集速率

指令应答参数
AT+CYC??OK+Get:[P1]P1: 00~99
10进制,单位:秒
AT+CYC[P1]OK+Set:[P1]

该指令用于设置 PIO 采集的传输速率,单位是秒。
在 PIO 采集模式下,如果 PIO4~PIO11 其中的任意一个 PIO 口输入电平由低转高,则模块会按照此参数的设置上报给远端蓝牙(连接时)或是通过串口输出(未连接时),上报数据模式参见“AT+COL??”指令

26.更改 Characteristic 指令

指令应答参数
AT+CHAR?OK+Get:0x[P1]P1: 0x0001~0xFFFE
Default: 0xFFE1
AT+CHAR0x[P1]OK+Set:0x[P1]

注: 该设置值将在模块重启后生效

27.查询\设置模块的学习功能

指令应答参数
AT+COMP?OK+Get:[P1]P1: ?, 0, 1
?: 查询
0: 关闭
1: 打开
Default: 0
AT+COMP[P1]OK+Set:[P1]

该指令为主模式指令。 该指令用来学习不同厂家的 BLE 产品的通讯方式并与之通讯。

28.搜索 BLE 从机指令

指令应答参数
AT+DISC?OK+DISCS
OK+DIS[P1]:[P2]
OK+DISCE
P1: ‘C’,’0’,’1’,’2’
C: Common String
0~2: 设备地址类型
P2: MAC Address

该指令为主模式、手动工作模式指令。使用前须满足 AT+ROLE1,AT+IMME1条件。
发送 AT+DISC?指令后,模块若处于待机状态,返回 OK+DISCS 后开始搜索。
如果搜到 BLE 设备会返回 OK+DIS[P1]:123456789012,其中数字字符串代表对方蓝牙地址,V535 之前版本最多返回 6 个,V535 之后版本
不限定,索引下标从 0 开始。搜索完成后返回 OK+DISCE。
如只搜到二个设备的例子:
发送: AT+DISC?
接收: OK+DISCS
接收: OK+DIS[P1]:123456789012
如果 AT+SHOW 的值是 2 或者 3,会返回 RSSI
接收: OK+RSSI: xxx,
发送完 RSSI 之后,后面加入”\r\n”回车换行符共计两个 Byte,方便编程判断
如果 AT+SHOW 的值是 1 或者 3,会返回名字
接收: OK+NAME: xxx,
发送完名字之后,会在名字后加入”\r\n”回车换行符共计两个 Byte,方便编程判断
接收: OK+DIS[P1]:234567890123
如果 AT+SHOW 的值是 2 或者 3,会返回 RSSI
接收: OK+RSSI: xxx,
发送完 RSSI 之后,后面加入”\r\n”回车换行符共计两个 Byte,方便编程判断
如果 AT+SHOW 的值是 1 或者 3,会返回名字
接收: OK+NAME: xxx,
发送完名字之后,会在名字后加入”\r\n”回车换行符共计两个 Byte,方便编程判断
接收: OK+DISCE
如果要连接搜到的前 6 个返回设备,下标从 0 开始。
发送: AT+CONN0 连接搜到的第一个设备
发送: AT+CONN1 连接搜到的第二个设备
依此类推…
也可以用 AT+CO[设备类型][MAC 地址]的形式来连接指定地址的设备

29.搜索 BLE 从机指令并返回全部数据

指令应答参数
AT+DISA?OK+DISCS
OK+DISA:[P1][P2]P3][P4][P5]
OK+DISCE
P1: MAC Address 6Bytes
P2: Device type 1Byte
P3: RSSI 1Byte
P4: Rest data length 1Byte
P5: Rest data

30.iBeacon 设备搜索指令

指令应答参数
AT+DISI?OK+DISCS
OK+DISC:[P1:P2:P3:P4:P5]
OK+DISCE
P1: 厂商代码
P2: iBeacon 的 UUID
P3: Major Value, Minor Value, Measured Power
P4: MAC Address
P5: RSSI

该指令使用需满足 AT+IMME1 和 AT+ROLE1.
P1 长度:8,
P2 长度 32,
P3 长度 10,
P4 长度 12,
P5 长度 4
P3 包 4 位 Major value, 4 位 Minor value,2 位 Measured Power, 总长 10
如果扫描到的不是 iBeacon 设备,P1,P2,P3 将全部用’0’填充

31.设置 iBeacon 部署模式

指令应答参数
AT+DELO[P1]OK+DELO[P1]P1: 1~2
1: 部署模式 1,允许扫描回应
2: 部署模式 2,仅允许广播
Default: 0

命令执行成功后,模块将重启进行部署模式,直到下一次重新上电自动解除。

32.擦除绑定信息

指令应答参数
AT+ERASEOK+ERASE

该指令用于擦除模块端的绑定信息,手机端的绑定信息需要用户手动移除。

33.设置从模式广播包中的标志位

指令应答参数
AT+FLAG[P1]OK+ Set:[P1]P1: 0 0~ FF
该设置值设置后会立即更新至广播包里,从模式有效,具体效果参见AT+BATT 指令中”FLAG字节的描述”
Default: 0

34.查询\设置接收增益

指令应答参数
AT+GAIN?OK+ Get:[P1]P1: 0 ~ 1
0: 无增益
1: 打开增益
Default: 0
AT+GAIN[P1]OK+ Set:[P1]

35.查询/设置硬件流控

指令应答参数
AT+FLOW?OK+ Get:[P1]P1: 0 ~ 1
0: Off
1: On
Default: 0
AT+FLOW[P1]OK+ Set:[P1]

36.帮助指令

指令应答参数
AT+HELP?帮助信息

37.设置模块工作类型

指令应答参数
AT+IMME?OK+ Get:[P1]P1: 0 ~ 1
0: 上电立即工作
1: 上电后暂不工作
等待 AT+START; AT+CON;AT+CONN; AT+CO;AT+DISI?; AT+DISC?等指令
Default: 0
AT+IMME[P1]OK+Set:[P1]

注:重新上电后该设置值生效。

38.查询\设置 iBeacon 开关

指令应答参数
AT+IBEA?OK+ Get:[P1]P1: 0 ~ 1
0: 关闭 iBeacon
1: 打开 iBeacon
Default: 0
AT+IBEA[P1]OK+Set:[P1]

iBeacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935.
注:iBeacon 开关仅在从模式下有生,主模式不发送 iBeacon 广播包。
注:重新上电后(也可执行 AT+RESET)该设置值生效。
注:从 V517 开始增加该指令

39.查询\设置 iBeacon UUID 值

指令应答参数
AT+IBE0?OK+ Get:[P1]
AT+IBE0[P1]OK+Set:[P1]

iBeacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935.
该指令用于修改 UUID 中74278BDA部分

40.查询\设置 iBeacon UUID 值

指令应答参数
AT+IBE1?OK+ Get:[P1]P1: 00000001~ FFFFFFFE
Default: B6444520
AT+IBE1[P1]OK+Set:[P1]

Beacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935.
该指令用于修改 UUID 中B644-4520部分

41.查询\设置 iBeacon UUID 值

指令应答参数
AT+IBE2?OK+ Get:[P1]P1: 00000001~ FFFFFFFE
Default: 8F0C720E
AT+IBE2[P1]OK+Set:[P1]

iBeacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935. 该指令用于修改 UUID 中8F0C-720E部分

42.查询\设置 iBeacon UUID 值

指令应答参数
AT+IBE3?OK+ Get:[P1]P1: 00000001~ FFFFFFFE
Default: AF059935
AT+IBE3[P1]OK+Set:[P1]

iBeacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935. 该指令用于修改 UUID 中AF059935部分

43.查询\设置 iBeacon Marjor 值

指令应答参数
AT+MARJ?OK+ Get:[P1]P1: 0x0001 ~ 0xFFFE
Default: 0xFFE0
AT+MARJ[P1]OK+Set:[P1]

如设置 Marjor 为 0x0102
Send: AT+MARJ0x0102
Recv: OK+Set:0x0102 失败则不回复
0x0102 中的 x 为小写

44.查询\设置 iBeacon Minor 值

指令应答参数
AT+MINO?OK+ Get:[P1]Para: 0x0001 ~ 0xFFFE
Default: 0xFFE1
AT+MINO[P1]OK+Set:[P1]

如设置 Minor 为 0x0102
Send: AT+MINO0x0102
Recv: OK+Set:0x0102 若成功,失败则不回复

45.查询\设置 iBeacon Measured power 值

指令应答参数
AT+MEA??OK+ Get:[P1]P1: 0x00 ~ 0xFF
Default: 0xC5
AT+MEA[P1]OK+Set:[P1]

46.设置模块工作模式

指令应答参数
AT+MODE?OK+ Get:[P1]P1: 0 ~ 2
0: 透传模式
1: PIO 采集+远控+透传
2:透传+远控模式
Default: 0
AT+MODE[P1]OK+Set:[P1]

注:透传模式:即普通的串口透明传输,蓝牙通到数据后转发至串口,同时也转发串口收到的数据到远端蓝牙。

PIO 采集+远控+透传模式:在此模式下,远端蓝牙可以使用 AT 指令设置模块信息,还可以远程控制 2 路 PIO 输出状态(PIO2,PIO3),同时可以采集 8 路PIO 状态(PIO4~PIO11),同时还可以将不是“AT”打头的数据包转发至串口进行双向通讯。

透传+远控模式:在此模式下,远端蓝牙可以使用 AT 指令设置模块信息,还可以控制 10 路 PIO(PIO2~PIO11)输出状态,同时还可以将非“AT”开头的数据包转发至串口进行双向通讯。

47.设置是否通知上位机连接状态

指令应答参数
AT+NOTI?OK+ Get:[P1]P1: 0 ~ 1
0: 连接后不通知上位机
1: 连接后通知上位机
Default: 0
AT+NOTI[P1]OK+Set:[P1]

注:如 Para 值设为 1,模块在成功连接上远端模块后,会通过串口发送”OK+CONN”字符给与模块焊接在一起的上位机,断开连接后则会发送”OK+LOST”字符。

48.设置通知上位机连接状态字符串格式

指令应答参数
AT+NOTP?OK+ Get:[P1]Para: 0 ~ 1
0: 默认格式
1: 包含地址信息
Default: 0
AT+NOTP[P1]OK+Set:[P1]

注:该指令为 AT+NOTI 子指令,用于在 AT+NOTI1 的设置的基础上设置连接成功后的提示字符串如 Para 值设为 1,模块在成功连接上远端模块后,会通过串口发送”OK+CONN:001122334455”字符。 “001122334455”为当前连接主机的MAC 地址信息.

49.查询、设置设备名称

指令应答参数
AT+NAME?OK+Get[P1]P1:设备名称
最长 28 位数字或字母,含中划线和下划线,支持中文
Default:HMSoft
AT+NAME[P1]OK+Set[P1]

例子如下:
发送:AT+NAMEname
返回:OK+Set:name
参数 name:所要设置的当前名称,即蓝牙被搜索到的名称。11 个字符以内。
例:发送 AT+NAMEbill_gates
返回 OK+Set:bill_gates
这时蓝牙模块名称改为 bill_gates
注: 该指令执行后,须重新上电新设置的参数才能生效。

50.查询/设置串口校验

指令应答参数
AT+PARI?OK+ Get:[P1]P1: 0, 1, 2
0: 无校验
1: EVEN
2: ODD
Default: 0
AT+PARI[P1]OK+Set:[P1]

注:该指令执行后,须重新上电新设置的参数才能生效

51.查询/设置 PIO 口输出能力

指令应答参数
AT+PCTL?OK+ Get:[P1]P1 范围 0, 1
0: 一般输出
1: 强输出
Default: 1
AT+PCTL[P1]OK+Set:[P1]

注:该指令执行后,须重新上电新设置的参数才能生效。

52.PIO1 口输出状态(Query/Set Pio1 output status)

指令应答参数
AT+PIO1?OK+ Get:[P1]P1:0~1
0:待机慢闪,连接后常亮
1:待机不闪,连接后常亮
Default:0
AT+PIO1 [P1]OK+Set:[P1]

注:该指令执行后,须重新上电新设置的参数才能生效。

53.PIO 口输出控制(Query/Set Pio1 output status)

指令应答参数
AT+PIO[P1]?OK+ Get[P1]:[P2]P1: 2,3,4,5,6,7,8,9,A,B, ?
对应模块 PIO2~PIOB
P2: 0, 1, ?
0:输出低电平
1:输出高电平
?: 查询状态
Default:0
AT+PIO [P1][P2]OK+Set[P1]:[P2]

1.查询全部 PIO 口状态:
发送: AT+PIO??
接收: OK+PIO?:[value], Value 值为 000~3FF,转化为二进制后,从左到右分
别对应着 PIO0~PIOB,详见 AT+BEFC 指令描述
2.设置 PIO2 口输出高电平
发送: AT+PIO21
回复: AT+PIO21(如果执行成功), AT+PIO20(如果没有执行成功)
3.设置 PIO2 口输出低电平
发送: AT+PIO20
回复: AT+PIO20(如果执行成功), AT+PIO21(如果没有执行成功)

注:
AT+MODE1 模式下,您只能设置 2 路输出,即 PIO2,PIO3 的输出。在
AT+MODE2 模式下可以设置 10 路输出。即 PIO2~PIO11.

54.查询、设置配对密码

指令应答参数
AT+PASS?OK+Get:[P1]P1: 000000~999999
Default:000000
AT+PASS[P1]OK+Set:[P1]

例子如下:
发送 AT+PASS008888
返回 OK+Set:008888
这时蓝牙模块配对密码改为 008888,模块在出厂时的默认配对密码是000000。

55.设置模块休眠方式

指令应答参数
AT+PWRM?OK+ Get:[P1]P1: 0 ~ 1
0: 自动休眠
1: 不自动休眠,等待
AT+SLEEP 进入休眠状态
Default: 1
AT+PWRM[P1]OK+Set:[P1]

该指令仅在从模式下生效。

56.模块功率设置指令

指令应答参数
AT+POWE?OK+ Get:[P1]P1: 0 ~ 3
0: -23dbm
1: -6dbm
2: 0dbm
3: 6dbm
Default: 2
AT+POWE[P1]OK+Set:[P1]

注:调大功率会引起电量损耗加剧。

57.查询\设置待机的增强模式

指令应答参数
AT+RELI?OK+ Get:[P1]P1: 0 ~ 1
0: 普通待机
1: 增强待机模式
Default: 0
AT+RELI[P1]OK+ Set:[P1]

当您需要频繁断开并进行蓝牙连接的时候,需要打开此指令。

58.查询设置传感器采集频率(Rate)

指令应答参数
AT+RAT??OK+Get:[P1]P1: 00~99
单位: 分钟
默认: 1 分钟
AT+RAT[P1]OK+Set:[P1]

用于设置接在 HM-10 模块 P11 管脚上的传感器的自动采集频率,单位为分钟,自动采集完成后,会将采集数据更新至广播数据报中,目前支持 DHT11, DS18B20。
该指令设置后采集信息返回格式同 AT+TEHU?指令.
该指令需和 AT+SENS 指令配合使用。

59.恢复默认设置(Renew)

指令应答参数
AT+RENEWOK+RENEW

恢复模块默认出厂设置值,模块的所有设置均会被重置,恢复到出厂时状态,恢复出厂设置后,模块延时 500ms 后重启,如无必要,请慎用。

60.模块复位,重启(Reset)

指令应答参数
AT+RESETOK+RESET

该指令执行后,模块将延时 500ms 后重启。

61.查询、设置主从模式

指令应答参数
AT+ROLE?OK+ Get:[P1]P1: 0 ~ 1
1: 主设备
0: 从设备
Default: 0
AT+ROLE[P1]OK+Set:[P1]

注:该指令执行后,会导致模块延时 500ms 重启。

62.读取 RSSI 信号值

指令应答参数
AT+RSSI?OK+ RSSI:[P1]

注:该指令仅在远程控制(AT+MODE1,2)下起作用,上位机发送 AT+RSSI?后,模块读取 RSSI 值并回复给上位机。

63.查询成功连接过的远程主机地址

指令应答参数
AT+RADD?OK+RADD:MAC 地址

64.查询、设置从机通讯属性

指令应答参数
AT+RESP?OK+ Get:[P1]P1: 0 ~ 1, ?
0: Notify
WriteWithoutResponse
1: Notify
Write
WriteWithoutResponse
Default: 0
AT+RESP[P1]OK+Set:[P1]

注:该指令重启生效

65.设置模块在手动搜索时是否返回设备名字和信号强度信息

指令应答参数
AT+SHOW?OK+ Get:[P1]P1: 0 ~ 1
0: 不返回任何额外信息
1: 返回设备名称
2: 返回信号强度
3: 返回名称+信号强度
Default: 0
AT+SHOW[P1]OK+Set:[P1]

66.查询设置传感器型号

指令应答参数
AT+SENS?OK+Get:[P1]P1: 0~2
0: None
1: DHT11
2: DS18B20
Default: 0
AT+SENS[P1]OK+Set:[P1]

用于设置接在 HM-10 模块 P11 管脚上的传感器的型号, 目前支持 DHT11, DS18B20。 该指令设置完成后如需设置自动采集频率请参见 AT+RATE 指令。

67.设置停止位

指令应答参数
AT+STOP?OK+ Get:[P1]P1: 0~1
0: 1 停止位
1: 2 停止位
Default: 0
AT+STOP[P1]OK+Set:[P1]

注:该指令执行后,须重新上电新设置的参数才能生效。

68.开始工作指令

指令应答参数
AT+STARTOK+START

注:该指令配合 AT+IMME 设置值为 1 时有效,指令执行后,模块延时 500ms开始工作。

69.手动让模块进行休眠状态

指令应答参数
AT+SLEEPOK+ SLEEP

该指令仅在从模式下待机状态下生效。

70.设置模块成功连接后是否保存连接地址

指令应答参数
AT+SAVE?OK+ Get:[P1]P1: 0 ~ 1
0: 保存
1: 不保存
Default: 0
AT+SAVE[P1]OK+ Set:[P1]

注:如果要设置主模块为不保存,请先执行一下 AT+CLEAR 指令清除以前的地址,这样每次主模块上电后,会先搜索,而非直接连接上次地址。

71.设置主模式下执行一次扫描时长

指令应答参数
AT+SCAN?OK+ Get:[P1]P1: 1 ~ 9
Unit: Second
Default: 3 Seconds
AT+SCAN[P1]OK+ Set:[P1]

72.设置主模式下尝试连接时间

指令应答参数
AT+TCON?OK+Get:[P1]P1: 000000~009999
000000 代表持续连接,其余代表尝试的毫秒数。
AT+TCON[P1]OK+Set:[P1]

注:该指令只在主模式下有效,当模块记住了上一次成功链接的地址后,再次开机自动尝试连接该地址的尝试时间由此参数控制,超过该数值,会自动进入搜索状态,000000 为一直尝试连接,该参数值为毫秒,如无必要请不要设置该值太小,会影响模块正常工作。

73.查询温度、湿度信息

指令应答参数
AT+TEHU?OK+ Get:[P1][P2]P1:000~120
P2:000~100

使用前请用 AT+SENS 设置传感器型号。
该指令为 HMSensor 版本专用指令,用于读取连接在 HM-10 模块 P11 管脚上的传感器的数据,目前支持 DHT11, DS18B20。

有三种方式得到温度、湿度信息,请参考 AT+BATT 代码。
D. 温度、湿度值已经包含在广播包里,无须连接,仅扫描一下就可以得到。

Android 系统:
信息格式: 0x07, 0x16, 0x00, 0xB0, 【保留字节】, 【温度值】, 【温度值】【电量值】,在编程时,只需要对扫描到的设置信息进行拆分即可。

iOS 系统:
系统搜索回调函数中的 NSDictionary 结构中,对该结构进行拆分,Service为 0xB000 的 UUID 的 Key 值包含四个字节,分别是【保留字节】, 【温度值】,【湿度值】,【电量值】。

E. 在模块未连接到远端蓝牙的情况下,通过串口发送 AT+TEHU?得到。
F. 用 AT+MODE1/2 将模块切换到非透传模式,在建立蓝牙连接之后,远端设备可以发 AT+TEHU?得到。
G. 如果取得的温度值大于 128,为负数,请减掉 128,即为相应的负数值。

74.查询温度信息或设置广播包中温度标志位的值

指令应答参数
AT+TEMP?OK+ Get:[P1]P1:000.000

用于读取连接在模块 P11 管脚上的传感器 DS18B20 的数据。 若是没有设 AT+SENS,则读取模块内部的温度传感器数据。 数据格式:OK+Get:000.000

指令应答参数
AT+TEMP[P1]OK+ Set:[P1]P1: 0x00~0xFF
Not include ‘?’

用于设置模块在从机待机的时候,发送的广播包中的温度标志位的值,待机时设置值立即生效,作用同 AT+FLAG,只是设置的标志位不同,设置值 生效后,主机可以立即扫描得到.如设置温度标志位为’A’, 发送 AT+TEMPA 即可.

75.设置广播包中湿度标志位中的值

指令应答参数
AT+HUMI[P1]OK+ Set:[P1]P1:0x00~0xFF

用于设置模块在从机待机的时候,发送的广播包中的温度标志位的值,待机时设置值立即生效,作用同 AT+FLAG,只是设置的标志位不同,设置值生效后,主机可以立即扫描得到.
如设置湿度标志位为’A’, 发送 AT+HUMIA 即可.

77.更改 Service UUID 指令

指令应答参数
AT+UUID?OK+Get:0x[P1]P1: 0x0001~0xFFFE
Default: 0xFFE0
AT+UUID0x[P1]OK+Set:0x[P1]

注: 该设置值将在模块重启后生效

78.查询、设置 UART 休眠方式

指令应答参数
AT+UART?OK+Get:[P1]P1: 0, 1
0: 休眠时不关闭 UART,可以用 UART 唤醒。
1: 休眠时关闭 UART。
Default: 1
AT+UART[P1]OK+Set:[P1]

注: 该指令为专用指令,用于降低功耗。

79.查询\设置模块是否使用两个 UUID 特性

指令应答参数
AT+FFE2?OK+Get:[P1]P1: 0, 1
0: 不使用 Char 2
1: 使用Char 2 = Char1 +1
2: 使用Char 2 = Char1 - 1
Default: 0
AT+FFE2[P1]OK+Set:[P1]

80.查询\设置模块使用 128Bit 特性

指令应答参数
AT+128B?OK+Get:[P1]P1: 0, 1
0: 使用 16Bit
1: 使用 128Bit
Default: 0
AT+128B[P1]OK+Set:[P1]

81.版本查询

指令应答参数
AT+VERS?
AT+VER??
版本信息

参考图片

ocrobot/alpha/cc2541/main.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1