【WCH蓝牙系列芯片】-基于CH582开发板—主机枚举从机所有服务和特征
-------------------------------------------------------------------------------------------------------------------------------------
在使用沁恒的CH582蓝牙芯片的过程中,有时需要主机去连接蓝牙从机进行通信,主机在使用过程中工作流程是 :
1、 蓝牙初始化完成后,开始扫描周围蓝牙设备
2、 获取到被扫描蓝牙设备的数据
3、 通过将扫描设备的MAC地址与主机设置的MAC地址进行对比,如果MAC地址一致则发起连接,否则继续扫描设备
4、 枚举从机服务,获取对应特征的handle值,进行主从数据传输处理。
这里,讲解一下主机枚举从机所有服务,并获取到每个特征值对应的handle值,通过handle值进行接收数据或者发送数据。
第一:主机寻找从机设备,并建立连接过程
第二:枚举从机所有服务的流程
当使用例程中的蓝牙从机,使用主机去建立连接,并枚举服务。通过串口打印来观察整个流程。
在获取从机所有属性对应的handle的情况下,可以通过handle值得判断,对从机进行读写的处理任务。
在原有的程序中添加针对从机的UUID为ffe1,进行读写操作,因为这个ffe1对应的handle值为0x23,所有只要对获取的handle值进行判断,然后再开启对从机读写的任务操作。
通过打印来观察主机和从机的现象。
注意:
在使用GATT_DiscCharsByUUID获取到的handle,是按照主机程序的流程会先发现handle的范围,同时已知UUID;在进行收发数据的时候需要将handle+1;
使用GATT_ReadUsingCharUUID获取到的handle,是已知UUID就可以了,直接将handle填写进行收发就可以了。