上位机共用同一组串口与本芯片进行发送和接收串口通讯,上位机可发送以下数据
1、TTS串口指令
2、蓝牙串口指令、蓝牙串口数据透传、蓝牙串口数据解析
3、音频解码串口指令
4、参数配置串口指令(含TTS参数、蓝牙参数、音频参数)(参数保存在芯片内置Flash里,断电不会丢失)
支持“纯串口模式”和“串口蓝牙混合模式”两种开机运行模式
1、出厂默认模式为“纯串口运行模式”;
2、上位机可通过“设置开机运行模式”指令,自由设定开机运行模式,参数保存在本芯片中,断电不会丢失
3、本芯片上电后,读取“开机运行模式”参数按设定运行(=0:纯串口运行模式;=1:串口蓝牙混合运行模式)
开机运行模式 | 触发条件 | 模式支持的命令集 | ||
命令发送方 | 支持的命令集 | |||
纯串口模式 (蓝牙功能关) (功耗低) |
1. 出厂默认 2.开机运行模式参数=0 3.关闭蓝牙功能指令 |
上位机 | TTS指令 TTS参数配置指令 蓝牙参数配置指令 “开启蓝牙功能”指令 |
|
串口蓝牙混合模式 (蓝牙功能开) (功耗高) |
1.开机运行模式参数=1 2.开启蓝牙功能指令 |
上位机 | TTS指令 TTS参数配置指令 蓝牙参数配置指令 “关闭蓝牙功能”指令 数据透传、数据解析指令 |
|
用户应用端 | 数据透传、数据解析指令 |
“纯串口模式”下蓝牙TTS芯片数据处理流程图:
“串口蓝牙混合模式”下蓝牙TTS芯片数据处理流程图:
上位机数据处理流程图:
用户应用端数据处理流程图:
1、上位机在发送“蓝牙串口指令”时,需在尾部加上回车换行"\r\n"两个字符(即:0x0D,0x0A)再发送
2、本芯片在数据回传时,每行会在尾部加上回车换行"\r\n"两个字符(即:0x0D,0x0A)再回传
指令含义 | 指令语法 | 指令回传 | 备注 |
开启蓝牙功能 | AT+BLEOPEN | +BLEOPEN OK |
蓝牙指示灯亮15ms后再灭 |
关闭蓝牙功能 | AT+BLECLOSE | +BLECLOSE OK |
蓝牙指示灯灭 |
查询蓝牙开启状态 | AT+BLESTATE? | +BLESTATE:0xXX OK |
=1:蓝牙功能已开启 =0:蓝牙功能已关闭 |
查询蓝牙连接状态 | AT+CONNSTATE? | +CONNSTATE:0xXX OK |
=1:蓝牙已连接 =0:蓝牙已断开 |
通信测试 | AT | +OK | - |
载波测试 | AT+SENDUNM | +SENDUNM OK |
- |
错误AT指令 | AT+XXXXXXX | +ERROR XXXXXXX |
- |
1. 本芯片收到本指令后开启蓝牙功能或重新开启蓝牙功能
2. 本指令可将本芯片的工作状态由“纯串口模式”切换到“蓝牙串口混合模式”
3. 开启蓝牙功能后,蓝牙指示灯亮15ms后再灭掉
指令语法和举例 | 指令回传和举例 |
AT+BLEOPEN 发送:41 54 2B 42 4C 45 4F 50 45 4E 0D 0A |
+BLEOPEN OK 回传:2B 42 4C 45 4F 50 45 4E 0D 0A 4F 4B 0D 0A |
1. 本芯片收到本指令后关闭蓝牙功能
2. 本指令可将本芯片的工作状态由“蓝牙串口混合模式”切换到“纯串口模式”
3. 关闭蓝牙功能后,蓝牙指示灯灭掉
指令语法和举例 | 指令回传和举例 |
AT+BLECLOSE 发送:41 54 2B 42 4C 45 43 4C 4F 53 45 0D 0A |
+BLECLOSE OK 回传:2B 42 4C 45 43 4C 4F 53 45 0D 0A 4F 4B 0D 0A |
=1:蓝牙功能已开启; =0:蓝牙功能已关闭
指令语法和举例 | 指令回传和举例 |
AT+BLESTATE? 发送:41 54 2B 42 4C 45 53 54 41 54 45 3F 0D 0A |
+BLESTATE:0x01 OK 回传:2B 42 4C 45 53 54 41 54 45 3A 01 0D 0A 4F 4B 0D 0A |
=1:蓝牙已连接; =0:蓝牙已断开
指令语法和举例 | 指令回传和举例 |
AT+CONNSTATE? 发送:41 54 2B 43 4F 4E 4E 53 54 41 54 45 3F 0D 0A |
+CONNSTATE:0x01 OK 回传:2B 43 4F 4E 4E 53 54 41 54 45 3A 01 0D 0A 4F 4B 0D 0A |
指令语法和举例 | 指令回传和举例 |
AT 发送:41 54 0D 0A |
+OK 回传:2B 4F 4B 0D 0A |
指令语法和举例 | 指令回传和举例 |
AT+SENDUNM 发送: 41 54 2B 53 45 4E 44 55 4E 4D 0D 0A |
+SENDUNM OK 回传:2B 53 45 4E 44 55 4E 4D 0D 0A 4F 4B 0D 0A |
指令语法和举例 | 指令回传和举例 |
AT+XXXXXXX 发送:41 54 2B 58 58 58 58 58 58 58 0D 0A |
+ERROR XXXXXXX 回传:2B 45 52 52 4F 52 0D 0A 58 58 58 58 58 58 58 0D 0A |
1、上位机在发送“蓝牙串口指令”时,需在尾部加上回车换行"\r\n"两个字符(即:0x0D,0x0A)再发送
2、本芯片在数据回传时,每行会在尾部加上回车换行"\r\n"两个字符(即:0x0D,0x0A)再回传
上位机配置蓝牙参数(例如:蓝牙名称,MAC地址,服务UUID,广播数据包...):
1、 蓝牙参数配置后会实时保存在本芯片的Flash中,断电不会丢失,上位机通过“获取参数指令”获取的蓝牙参数是实时最新的(本芯片会从Flash中读取回传);
2、 蓝牙参数配置后参数不会立即生效,需上位机发送“开启蓝牙功能”串口指令,参数才会生效;
指令含义 | 指令语法 | 指令回传 | 指令含义 | 指令语法 | 指令回传 | |
设置开机运行模式 | AT+SETMODE:%x | +SETMODE OK |
获取开机运行模式 | AT+MODE? | +MODE:%x OK |
|
设置蓝牙名称 | AT+SETNAME:%s | +SETNAME OK |
获取蓝牙名称 | AT+NAME? | +NAME:%s OK |
|
设置蓝牙MAC地址 | AT+SETMAC:%x | +SETMAC OK |
获取蓝牙MAC地址 | AT+MAC? | +MAC:%x OK |
|
设置传输参数 | AT+SETPARAM:%x | +SETPARAM OK |
获取传输参数 | AT+PARAM? | +MAC:%x OK |
|
设置服务UUID | AT+SETUUID:%s | +SETUUID OK |
获取服务UUID | AT+UUID? | +UUID:%s OK |
|
设置使能UUID | AT+SETENUUID:%s | +SETENUUID OK |
获取使能UUID | AT+ENUUID? | +ENUUID:%s OK |
|
设置广播数据包 | AT+SETADV:%x | +SETADV OK |
获取广播数据包 | AT+ADV? | +ADV:%x OK |
|
设置扫描响应数据包 | AT+SETSCAN:%x | +SETSCAN OK |
获取扫描响应数据包 | AT+SCAN? | +SCAN:%x OK |
指令含义 | 指令语法 | 指令回传 | 备注 |
设置开机运行模式 | AT+SETMODE:%x | +SETMODE OK |
“%x”:16进制格式 1字节 (=0:纯串口模式;=1:串口蓝牙混合模式) (出厂默认模式=纯串口模式) |
获取开机运行模式 | AT+MODE? | +MODE:%x OK |
指令举例 | 回传举例 |
AT+SETMODE:0x01 发送:41 54 2B 53 45 54 4D 4F 44 45 3A 01 0D 0A (设置开机运行模式=串口蓝牙混合模式) |
+SETMODE OK 回传:2B 53 45 54 4D 4F 44 45 0D 0A 4F 4B 0D 0A |
指令举例 | 回传举例 |
AT+MODE? 发送:41 54 2B 4D 4F 44 45 3F 0D 0A |
+MODE:0x00 OK 回传:2B 4D 4F 44 45 3A 00 0D 0A 4F 4B 0D 0A (获取的开机运行模式=纯串口模式) |
指令含义 | 指令语法 | 指令回传 | 备注 |
设置蓝牙名称 | AT+SETNAME:%s | +SETNAME OK |
“%s”:字符串格式 蓝牙名称<=18字节 支持中文蓝牙名称(UTF-8编码格式,1个中文占3个字节) 1:若广播包或扫描包里含有蓝牙名称字段,本指令设置了新的蓝牙名称且成功后,本芯片进行广播或扫描响应时,会先将数据包里的蓝牙名称自动变成Flash里最新的蓝牙名称后再广播或扫描响应; |
获取蓝牙名称 | AT+NAME? | +NAME:%s OK |
广播数据包出厂设定:《广播数据包出厂设定》章节
扫描响应包出厂设定:《扫描响应包出厂设定》章节
指令举例 | 回传举例 |
AT+SETNAME:VoiceTX_0A0B0C 发送:41 54 2B 53 45 54 4E 41 4D 45 3A 56 6F 69 63 65 54 58 5F 30 41 30 42 30 43 0D 0A |
+SETNAME OK 回传:2B 53 45 54 4E 41 4D 45 0D 0A 4F 4B 0D 0A |
AT+SETNAME:宇音 发送:41 54 2B 53 45 54 4E 41 4D 45 3A E5 AE 87 E9 9F B3 0D 0A |
指令举例 | 回传举例 |
AT+NAME? 发送:41 54 2B 4E 41 4D 45 3F 0D 0A |
+NAME:VoiceTX_0A0B0C OK 回传:2B 4E 41 4D 45 3A 56 6F 69 63 65 54 58 5F 30 41 30 42 30 43 0D 0A 4F 4B 0D 0A |
指令含义 | 指令语法 | 指令回传 | 备注 |
设置蓝牙MAC地址 | AT+SETMAC:%x | +SETMAC OK |
“%x”:16进制格式 蓝牙MAC地址=6字节 1:若广播包或扫描包里含有MAC地址字段,本指令设置了新的MAC地址且成功后,本芯片进行广播或扫描响应时,会先将数据包里的MAC地址自动变成Flash里最新的MAC地址后再广播或扫描响应; |
获取蓝牙MAC地址 | AT+MAC? | +MAC:%x OK |
指令举例 | 回传举例 |
AT+SETMAC:0x0800200A0B0C 发送:41 54 2B 53 45 54 4D 41 43 3A 08 00 20 0A 0B 0C 0D 0A |
+SETMAC OK 回传:2B 53 45 54 4D 41 43 0D 0A 4F 4B 0D 0A |
指令举例 | 回传举例 |
AT+MAC? 发送:41 54 2B 4D 41 43 3F 0D 0A |
+MAC:0x0800200A0B0C OK 回传:2B 4D 41 43 3A 08 00 20 0A 0B 0C 0D 0A 4F 4B 0D 0A |
指令含义 | 指令语法 | 指令回传 | 备注 |
设置传输参数 | AT+SETPARAM:%x | +SETPARAM OK |
“%x”:16进制格式 2字节:传输包字节数(默认:20字节) 2字节:广播间隔ms(默认:100ms) 2字节:连接间隔ms(默认:15ms) |
获取传输参数 | AT+PARAM? | +MAC:%x OK |
指令举例 | 回传举例 |
AT+SETPARAM:0x00140064000F 发送:41 54 2B 53 45 54 50 41 52 41 4D 3A 00 14 00 64 00 0F 0D 0A |
+SETPARAM OK 回传:2B 53 45 54 50 41 52 41 4D 0D 0A 4F 4B 0D 0A |
指令举例 | 回传举例 |
AT+PARAM? 发送:41 54 2B 50 41 52 41 4D 3F 0D 0A |
+PARAM:0x00140064000F OK 回传:2B 50 41 52 41 4D 3A 00 14 00 64 00 0F 0D 0A 4F 4B 0D 0A |
指令含义 | 指令语法 | 指令回传 | 备注 |
设置服务UUID | AT+SETUUID:%s | +SETUUID OK |
“%s”:字符串格式,最大64个字节 |
获取服务UUID | AT+UUID? | +UUID:%s OK |
1. 设置1个服务UUID格式:服务UUID+空格+特征值UUID+空格+特征值UUID......
2. 设置多个服务UUID格式:2个UUID之间用冒号隔开
3. 注意:若修改了“服务UUID”,也需要修改对应的“使能UUID”,再重新开启蓝牙之后,才能按预期设定的进行数据透传和数据通讯
指令含义 | 指令举例 | 回传举例 |
设置1个服务UUID | AT+SETUUID:FEE7 02FEC9 08FEC7 20FEC8 发送:41 54 2B 53 45 54 55 55 49 44 3A 46 45 45 37 20 30 32 46 45 43 39 20 30 38 46 45 43 37 20 32 30 46 45 43 38 0D 0A |
+SETUUID OK 回传:2B 53 45 54 55 55 49 44 0D 0A 4F 4B 0D 0A |
设置多个服务UUID | AT+SETUUID:FEE7 02FEC9 08FEC7 20FEC8:FF17 02FEC9 08FFE1 10FFE4 20FEC6 发送:41 54 2B 53 45 54 55 55 49 44 3A 46 45 45 37 20 30 32 46 45 43 39 20 30 38 46 45 43 37 20 32 30 46 45 43 38 3A 46 46 31 37 20 30 32 46 45 43 39 20 30 38 46 46 45 31 20 31 30 46 46 45 34 20 32 30 46 45 43 36 0D 0A |
指令举例 | 回传举例 |
AT+UUID? 发送:41 54 2B 55 55 49 44 3F 0D 0A |
+UUID:FEE7 02FEC9 08FEC7 20FEC8 OK 回传:2B 55 55 49 44 3A 46 45 45 37 20 30 32 46 45 43 39 20 30 38 46 45 43 37 20 32 30 46 45 43 38 0D 0A 4F 4B 0D 0A |
+UUID:FEE7 02FEC9 08FEC7 20FEC8:FE17 02FEC9 08FFE1 10FFE4 20FEC6 OK 发送:2B 55 55 49 44 3A 46 45 45 37 20 30 32 46 45 43 39 20 30 38 46 45 43 37 20 32 30 46 45 43 38 3A 46 46 31 37 20 30 32 46 45 43 39 20 30 38 46 46 45 31 20 31 30 46 46 45 34 20 32 30 46 45 43 36 0D 0A 4F 4B 0D 0A |
属性 | 属性 | 值 | 描述 |
广播 | Broadcast | 0x01 (bit0) | 允许使用特征配置描述符来广播特征值 |
读 | Read | 0x02 (bit1) | 允许读取特征值 |
可写而无需响应 | Write Without Response | 0x04 (bit2) | 允许写特征值而无须确认 |
写 | Write | 0x08 (bit3) | 允许写特征值 |
通知 | Notify | 0x10 (bit4) | 允许通知一个特征值而无须确认 |
指示 | Indicate | 0x20 (bit5) | 允许指示一个特征值而带有确认 |
认证签名写 | Authenticated Signed Writes | 0x40 (bit6) | 允许签名写入一个特征值 |
扩展属性 | Extended Properties | 0x80 (bit7) | 可以在特征扩展属性描述符中定义额外的特征 |
1. 设置使能UUID格式:服务UUID+空格+特征值UUID......
2. 注意:若修改了“服务UUID”,也需要修改对应的“使能UUID”,再重新开启蓝牙之后,才能按预期设定的进行数据透传和数据通讯
指令含义 | 指令语法 | 指令回传 | 备注 |
设置使能UUID | AT+SETENUUID:%s | +SETENUUID OK |
“%s”:字符串格式 |
获取使能UUID | AT+ENUUID? | +ENUUID:%s OK |
指令举例 | 回传举例 |
AT+SETENUUID:FEE7 20FEC8 发送:41 54 2B 53 45 54 45 4E 55 55 49 44 3A 46 45 45 37 20 32 30 46 45 43 38 0D 0A |
+SETENUUID OK 回传:2B 53 45 54 45 4E 55 55 49 44 0D 0A 4F 4B 0D 0A |
指令举例 | 回传举例 |
AT+ENUUID? 发送:41 54 2B 45 4E 55 55 49 44 3F 0D 0A |
+ENUUID:FEE7 20FEC8 OK 回传:2B 45 4E 55 55 49 44 3A 46 45 45 37 20 32 30 46 45 43 38 0D 0A 4F 4B 0D 0A |
广播数据包的举例和含义对应,请见《广播数据包出厂设定》章节
指令含义 | 指令语法 | 指令回传 | 备注 |
设置广播数据包 | AT+SETADV:%x | +SETADV OK |
“%x”:16进制格式,最大31字节 |
获取广播数据包 | AT+ADV? | +ADV:%x OK |
蓝牙名称和MAC地址的自动更新:
数据包 | 蓝牙名称和MAC地址的自动更新 | |
第X组数据 | 0x09 | 长度 |
0xFF | 类型(表示带有厂商编码) | |
0x08 0xA1 | 宇音天下厂商编码 | |
0xXX 0xXX 0xXX 0xXX 0xXX 0xXX | MAC地址(若数据包里含有完全一致的标红数据,当上位机用“AT+SETMAC:%x”指令设置了新的MAC地址且成功后,本芯片进行广播或扫描响应时,会先将数据包里的MAC地址自动变成Flash里最新的MAC地址后再广播或扫描响应) | |
第Y组数据 | 0xXX | 长度 |
0x09 | 类型:AD Type = Complete local name | |
0xXX 0xXX 0xXX 0xXX...... | 蓝牙名称(若数据包里含有完全一致的标红数据,当上位机用“AT+SETNAME:%s”指令设置了新的蓝牙名称地址且成功后,本芯片进行广播或扫描响应时,会先将数据包里的蓝牙名称自动变成Flash里最新的蓝牙名称后再广播或扫描响应) |
指令举例 | 回传举例 |
AT+SETADV:0x0201060502E7FE17FF09FF08A1112233445566090947565F42545F5758 发送:41 54 2B 53 45 54 41 44 56 3A 02 01 06 05 02 E7 FE 17 FF 09 FF 08 A1 11 22 33 44 55 66 09 09 47 56 5F 42 54 5F 57 58 0D 0A |
+SETADV OK 回传:2B 53 45 54 41 44 56 0D 0A 4F 4B 0D 0A |
指令举例 | 回传举例 |
AT+ADV? 发送:41 54 2B 41 44 56 3F 0D 0A |
+ADV:0x0201060502E7FE17FF09FF08A1112233445566090947565F42545F5758 OK 回传:2B 41 44 56 3A 02 01 06 05 02 E7 FE 17 FF 09 FF 08 A1 11 22 33 44 55 66 09 09 47 56 5F 42 54 5F 57 58 0D 0A 4F 4B 0D 0A |
扫描响应包的举例和含义对应,请见《扫描响应包出厂设定》章节
指令含义 | 指令语法 | 指令回传 | 备注 |
设置扫描响应数据包 | AT+SETSCAN:%x | +SETSCAN OK |
“%x”:16进制格式,最大31字节 |
获取扫描响应数据包 | AT+SCAN? | +SCAN:%x OK |
蓝牙名称和MAC地址的自动更新:
数据包 | 蓝牙名称和MAC地址的自动更新 | |
第X组数据 | 0x09 | 长度 |
0xFF | 类型(表示带有厂商编码) | |
0x08 0xA1 | 宇音天下厂商编码 | |
0xXX 0xXX 0xXX 0xXX 0xXX 0xXX | MAC地址(若数据包里含有完全一致的标红数据,当上位机用“AT+SETMAC:%x”指令设置了新的MAC地址且成功后,本芯片进行广播或扫描响应时,会先将数据包里的MAC地址自动变成Flash里最新的MAC地址后再广播或扫描响应) | |
第Y组数据 | 0xXX | 长度 |
0x09 | 类型:AD Type = Complete local name | |
0xXX 0xXX 0xXX 0xXX...... | 蓝牙名称(若数据包里含有完全一致的标红数据,当上位机用“AT+SETNAME:%s”指令设置了新的蓝牙名称地址且成功后,本芯片进行广播或扫描响应时,会先将数据包里的蓝牙名称自动变成Flash里最新的蓝牙名称后再广播或扫描响应) |
指令举例 | 回传举例 |
AT+SETSCAN:0x09FF08A1112233445566090947565F42545F5758 发送:41 54 2B 53 45 54 53 43 41 4E 3A 09 FF 08 A1 11 22 33 44 55 66 09 09 47 56 5F 42 54 5F 57 58 0D 0A |
+SETSCAN OK 回传:2B 53 45 54 53 43 41 4E 0D 0A 4F 4B 0D 0A |
指令举例 | 回传举例 |
AT+SCAN? 发送:41 54 2B 53 43 41 4E 3F 0D 0A |
+SCAN:0x09FF08A1112233445566090947565F42545F5758 OK 回传:2B 53 43 41 4E 3A 09 FF 08 A1 11 22 33 44 55 66 09 09 47 56 5F 42 54 5F 57 58 0D 0A 4F 4B 0D 0A |
蓝牙参数 | 出厂设定 |
开机运行模式 | 0x00 (即:纯串口模式) |
蓝牙名称 | GV_BT_WX |
蓝牙MAC | 0x0800200A0B0C |
蓝牙传输参数 | 0x00140064000F |
服务UUID | FEE7 02FEC9 08FEC7 20FEC8 |
使能UUID | FEE7 20FEC8 |
广播包 | 详见本章节第2小节 |
扫描包 | 详见本章节第3小节 |
本芯片收到上位机的“蓝牙连接”串口指令后,会广播上位机已设置好的的“广播数据包”,若没有设置,本芯片会广播出厂设定的“广播数据包”:
出厂设定的“广播数据包”为:
16进制:02 01 06 05 02 E7 FE 17 FF 09 FF 08 A1 08 00 20 0A 0B 0C 09 09 47 56 5F 42 54 5F 57 58 0D 0A
其对应的含义见下表:
出厂设定“广播数据包”(共29字节) | 描述 | |
第1组数据 | 0x02 | 长度 |
0x01 | 类型 | |
0x06 | 内容 | |
第2组数据 | 0x05 | 长度 |
0x02 | 类型 | |
0xE7 0xFE | 服务UUID1 | |
0x17 0xFF | 服务UUID2 | |
第3组数据 | 0x09 | 长度 |
0xFF | 类型(表示带有厂商编码) | |
0x08 0xA1 | 宇音天下厂商编码 | |
0x08 0x00 0x20 0x0A 0x0B 0x0C | 厂商名称(一般为MAC地址)) | |
第4组数据 | 0x09 | 长度 |
0x09 | 类型:AD Type = Complete local name | |
0x47 0x56 0x5F 0x42 0x54 0x5F 0x57 0x58 | 蓝牙名称:“GV_BT_WX” |
本芯片收到用户应用端的扫描响应请求时,会广播上位机已设置好的的“扫描响应数据包”,若没有设置,本芯片会广播出厂设定的“扫描响应数据包”
出厂设定的“扫描响应数据包”为:
16进制:09 FF 08 A1 08 00 20 0A 0B 0C 09 09 47 56 5F 42 54 5F 57 58 0D 0A
其对应的含义见下表:
出厂设定“扫描响应数据包”(共20字节) | 描述 | |
第1组数据 | 0x09 | 长度 |
0xFF | 类型(表示带有厂商编码) | |
0x08 0xA1 | 宇音天下厂商编码 | |
0x08 0x00 0x20 0x0A 0x0B 0x0C | 厂商名称(一般为MAC地址) | |
第2组数据 | 0x09 | 长度 |
0x09 | 类型:AD Type = Complete local name | |
0x47 0x56 0x5F 0x42 0x54 0x5F 0x57 0x58 | 蓝牙名称:“GV_BT_WX” |
数据处理流程图,请见《“串口蓝牙混合模式”数据处理流程图》章节
注意1:上位机给本芯片发送的"数据包长度"<=500字节;
注意2:上位机给本芯片发送的"数据包长度"若大于设置的“传输包字节数”时,本芯片会分包转发给用户应用端,所有分包全部发送完成后,本芯片会主动给上位机发出“透传发送成功通知”(这时候上位机可以发送下一包数据了)
本芯片收到上位机发来的串口数据的处理:
1、若前1字节为“0xFD”或者前2字节为“AT”,本芯片直接处理,处理结果回传上位机
2、 若前3字节为“AN=”,判定为“串口需解析数据命令”,本芯片解析后转发给用户应用端
4、 其它情况,判定为“串口透传数据”,本芯片直接转发给用户应用端
注意1:用户应用端给本芯片发送的"数据包长度"<=500字节;
本芯片收到用户应用端发来的蓝牙数据后的处理:
1、若前1字节为“0xFD”或者前2字节为“AT”,本芯片直接处理,处理结果回传用户应用端
2、若前3字节为“AN=”,判定为“蓝牙需解析数据命令”,本芯片解析后转发给上位机
3、其它情况,判定为“蓝牙透传数据”,本芯片直接转发给上位机
本芯片发出的所有蓝牙通知,会在尾部加上回车换行"\r\n"两个字符(即:0x0D,0x0A)再通知
1.本芯片被用户应用端连接后,会主动通知上位机相关的蓝牙连接信息
2. 蓝牙连接后,蓝牙指示灯常亮
语法 | 说明 |
Connect_%s_%s_%x | 第1个 “%s” =服务UUID(字符串类型) 第2个 “%s” =通信方式(字符串类型) 第3个 “%x” =MAC地址(16进制类型) |
通知举例 | 通知数据 |
Connect_FEE7_Notify_0x0800200A0B0C | 43 6F 6E 6E 65 63 74 5F 46 45 45 37 5F 4E 6F 74 69 66 79 5F 08 00 20 0A 0B 0C 0D 0A |
Connect_FF17_Indicate_0x0800200A0B0C | 43 6F 6E 6E 65 63 74 5F 46 46 31 37 5F 49 6E 64 69 63 61 74 65 5F 08 00 20 0A 0B 0C 0D 0A |
说明:“通知举例”和“通知数据”栏相同颜色有对应关系。“0D 0A”为尾部需加的回车换行"\r\n"
1. 本芯片被用户应用端断开后,会主动通知上位机蓝牙断开信息
2. 蓝牙连接后,蓝牙指示灯常灭
通知举例 | 通知数据 |
Connect_Fail | 43 6F 6E 6E 65 63 74 5F 46 61 69 6C 0D 0A |
本芯片收到上位机的数据,数据转发成功后(或发送 FIFO 为空),会主动通知上位机发送成功(这时候上位机可以发送下一包数据了)
通知举例 | 通知数据 |
ACK | 41 43 4B 0D 0A |
用户可以通过“宇音天下PC演示程序(即上位机)”和“BLE蓝牙助手”手机App(即用户应用端)测试本芯片的蓝牙功能
1、 测试:蓝牙串口命令(含蓝牙参数配置命令)
2、 测试:蓝牙数据透传,蓝牙数据通讯
3、 测试:蓝牙广播,蓝牙状态通知
请下载“nRF Connect”APP: