CC2540 USB DONGLE 使用 BTool 调试BLE 说明

时间:2023-03-10 05:37:10
CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  一、Btool软件界面介绍

  首先您要将USBDONGLE插入电脑的USB口,然后打开双击打开Btool软件,打开后如下图所示:

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  在安装驱动的教程中,我们已经记住了我们的USB DONGLE的串口号,在这里请您选择正确的串口号,其它默认就好,点击OK。会出现下面的界面:

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  下面我们针对这个初始化的界面做一些说明讲解:

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  二、扫描设备使用介绍

  默认Btool打开后,只是对USB DONGLE进行复位初始化操作,并不会跟Monitor一样自动去扫描周围空中从设备,所以需要我们手动去启动扫描!

  A、点击“Discovery”按钮,开始启动USBDONGLE扫描,您会看到,如果扫描到空中设备后,那么设备信息就会以蓝牙的协议标准返回上来,Btool做的相当完美,协议都帮我们做了解析,我们可以非常清晰的看到每次交互的数据类型和结果。

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  扫描的时间USBDONGLE默认为10s,扫描完毕后,Btool会报告扫描的结果,数据已经被解析,我们可以很清楚的看懂:

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

B、该扫描结果为,NumDevs为扫描到的设备数Addr为设备的MAC地址,如果有多个设备被扫描到,那么都会一一列出来。

C、除了在日志中会显示出来,在“Link Control”(连接控制)控制框内,Slave BDA里面,会自动的添加扫描到的BLE从机地址,这样是为了方便我们在连接的时候方便选择,因为蓝牙的连接都是靠mac地址来实现的!

  三、连接设备使用介绍

  A、刚才我们搜索到了一个设备,Btool已经将这个设备记录下来了,接下来我们只需要选中这个设备,并进行连接就可以了,如下图所示

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  选择好后,我们直接点击“Establish”,Btool即可自动进行连接。

  从日志框内我们可以看到连接过程中所产生的数据收发交互。

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  四、断开连接

1、断开连接很简单,直接点击 Teminate 即可断开当前连接。

2、如果有多个设备,只需要将需要断开的设备的connection Handle值填入即可,然后同样点击 Teminate  即可,连接会立刻被断开。

  五、查找Handle值 并利用Handle值去读取特定服务的特征值数据

  蓝牙开发工程师都知道,我们的蓝牙服务列表就好比一个很大的数组,每个数据字段都有确定的数组位置,在BLE中我们用Handle值来表示,Handle值您就可以理解为是数组的位置。

  我们每个服务不管是主服务还是子服务都有UUID值,对于我们,UUID的值是唯一的,我们经常会根据我们的需要来改变我们的服务列表的服务数量、类型和数值的大小,所以如果我们靠Handle去牢记每个数据段的位置,那将是很复杂的过程,而且也是不现实的,不可能每次我们改变了服务列表就要把买个Handle去算一次,所以BLE协议为我们想的很全面,我们直接利用UUID值去在服务列表中搜索这个Handle值,靠程序去自己判断这个是到底是多少,这样就变得非常方便可行了,而且不会出错。

  可能您要问IPHONE手机是直接利用UUID进行数据读写操作的,确实是这样,IOS平台的程序一直都是很简单的,其实他也是靠Handle值去实现读写数据的,只是苹果为我们做好了这个工作,让我们节省工作了。

  做过BLE主机的朋友都会知道,每次连接上以后都必须利用已知的UUID值去确定Handle值,否则我们将无法准确的与BLE从机去数据交互。

  上面的文字我认为是非常重要的,所以在这里就多说了几句,下面我们步入正题!

A、点击分栏中的“Read/Write”标签,进入到读写操作指令区域,

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  B、接下来我们就要通过UUID来查找我们需要的handle值了,首先选择读取操作的类型,我们选择“Discover Characteristic UUID”通过UUID来查找特征值的Handle,我们所实验的设备里有一个服务的UUID为0XFFF1,我们就查找他的特征值的handle值,按照如下选择好,并填写好UUID值:

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  C、随后我们电机 Read 按钮,这样Btool会控制USBDONGLE来读取连接设备的该uuid的handle值,读取成功后,如下显示:

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  D、读取的handle值为0X0025,我们测试版中,0XFFF1这个子服务里面的数据位20个字节,为了验证我们查找的handle是否正确,我们利用handle值去读取这个服务里面的数据,看看是否是20个字节。

  按照下图选择好,并填写0XFFF1服务0X0025 handle值,点击Read按钮,结果如下图:

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

正确的读取了该服务下面的20个字节的特征值,从而证明我上述操作是完全正确的。

  六、对应的特征值进行写操作

  写操作的过程与读取特征值是一样的,只需要填写对应的Handle值,然后将数据写入即可实现。

  A、咱们还是以UUID为 0XFFF1的子服务为例(该服务属性为读写),我们对其写入01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000 00,

按照下图写入Handle值和数据:

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  点击Write 即可执行写入操作,Status 中会显示写入的结果,显示为“Success”,成功。

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  B、我们继续执行读取操作,观察下我们写入是否成功,根据(五D)中的操作执行,显示如下:

CC2540 USB DONGLE 使用 BTool 调试BLE 说明

  读取与写入的数据一致,说明我们已经成功进行了写操作。

  小结

  通过上述教程,我估计您已经掌握了Btool最重要的应用,通过与Motinor对比,我们将Monitor比作万用表,将Btool比如示波器; Monitor是用来宏观的显示我们蓝牙设备得具体信息,而Btool则是协助我们去分析蓝牙内部是怎么进行数据读写和交互的,所以二者是我们进行蓝牙开发最重要的软件,大家一定要熟悉掌握,利用好会事半功倍!祝您成功!