【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填写进行收发就可以了。

 

posted on 2024-05-13 13:51  凡仕  阅读(301)  评论(0编辑  收藏  举报