【XR806开发板试用】BLE试用之三:GATT读写示例
- 
					
					
					
					
 本示例通过演示 GATT 读写场景,简要介绍 GATT 命令的基本使用方法。 手机与开发板 
 烧录BLE工程后,在xr806的串口命令行依次执行ble init ble advertise on开始广播。 成功后有如下提示: $ ble advertise on ************************************************* [RandomAddress 62:77:A4:D1:10:44 ] ************************************************* [cmd] Advertising started <ACK> 200 OK注册 GATT 服务,往串口输入命令,结果如下: $ gatt metrics on [cmd] Registering GATT metrics test Service. [cmd] GATT write cmd metrics on. <ACK> 200 OK后需要下载nRF connect软件对周围设备扫描: 连接成功后可以看到 nRF Connect 跳转到以下界面了:   同时串口可以看到提示: [cmd] Connected: 72:07:2F:49:AD:A1 (random) [cmd] Remote LMP version 5.0 (0x09) subversion 0x0000 manufacturer 0x0046 [cmd] LE Features: 0x00000000000179fd [cmd] LE conn param updated: int 0x0006 lat 0 to 500 [cmd] LE conn param updated: int 0x0027 lat 0 to 500红色部分的 Service 即是步骤 4 所创建的 GATT 服务。点开“Unknown Service”,可以看到注册的服务 包括一个可读可写的属性。 
  进行读写操作:如写入值“0x010203”,按照下图的红色序号“①->②->③”操作,然后在红色序 号④可以看到数据正常写入。此时再进行读操作,点击蓝色的①,可以在蓝色序号②的位置看到读取的结果如下: 
  开发板互联 两块评估板完成烧写后,复位即可,示例代码自动运行。 分别执行 ble init评估板 B 执行“ble advertise on”命令开始广播: $ble advertise on ************************************************* [RandomAddress 5F:6F:67:DA:79:61 ] ************************************************* [cmd] Advertising started <ACK> 200 OK评估板 B 注册 GATT 服务,往串口输入命令 $gatt metrics on [cmd] Registering GATT metrics test Service. [cmd] GATT write cmd metrics on. <ACK> 200 OK评估板 A 开始扫描设备: $>ble scan on可以看到一大串扫描结果,执行一段时间后执行 ble scan off关闭扫描 可以找到对应扫描结果地址 ... [cmd] [DEVICE]: 5F:6F:67:DA:79:61 (random), AD evt type 4, RSSI -23 Xradio C:0 S:1 D:0 SR:1 E:0 Prim: LE 1M, Secn: No packets ...评估板 A 开始连接 B: $>ble connect 5F:6F:67:DA:79:61 random连接成功后,A 有以下打印: ************************************************* [RandomAddress 56:25:4C:81:C7:1E ] ************************************************* [cmd] Connection pending <ACK> 200 OK $ [cmd] Connected: 5F:6F:67:DA:79:61 (random)同时 B 也有成功连接的打印: [cmd] Connected: 56:25:4C:81:C7:1E (random) [cmd] Remote LMP version 5.0 (0x09) subversion 0x0110 manufacturer 0x063d [cmd] LE Features: 0x00000000000179ff进行服务的查找,往 A 评估板输入命令结果: $>gatt discover $ [cmd] Descriptor 2800 found: handle 1 [cmd] Descriptor 2803 found: handle 2 [cmd] Descriptor 2a05 found: handle 3 [cmd] Descriptor 2902 found: handle 4 [cmd] Descriptor 2800 found: handle 5 [cmd] Descriptor 2803 found: handle 6 [cmd] Descriptor 2a00 found: handle 7 [cmd] Descriptor 2803 found: handle 8 [cmd] Descriptor 2a01 found: handle 9 [cmd] Descriptor 2803 found: handle a [cmd] Descriptor 2aa6 found: handle b [cmd] Descriptor 2800 found: handle c [cmd] Descriptor 2803 found: handle d [cmd] Descriptor 12345678-1234-5678-1234-56789abcde02 found: handle e [cmd] Discover complete可以看到,“12345678-1234-5678-1234-56789abcde02”是评估板 B 注册的属性,可读可写,其 handle 是 e。 进行 GATT 写操作:评估板 A 往 handle 是 e 的属性写字符串“ab”: $>gatt write e 0 ab string [cmd] Write pending <ACK> 200 OK $ [cmd] Write complete: err 0x00进行 GATT 读操作:评估板 A 往 handle 是 e 的属性读数据: gatt read e [cmd] Read pending <ACK> 200 OK $ [cmd] Read complete: err 0x00 length 2 [cmd] Read Value: 6162其中 61/62 正是 a/b 的 ASCII 码,读写成功。 
- 
					
					
					
					
 
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号
