centralStartDiscovery函数只能找到从机的一个service handle呢还是所有的service handle都能找到?

static void centralStartDiscovery(void)

{

    uint8_t uuid[ATT_BT_UUID_SIZE] = {LO_UINT16(SIMPLEPROFILE_SERV_UUID), // SIMPLEPROFILE_SERV_UUID 0xffe0

                                      HI_UINT16(SIMPLEPROFILE_SERV_UUID)};


    // Initialize cached handles

    centralSvcStartHdl = centralSvcEndHdl = centralCharHdl = 0;


    centralDiscState = BLE_DISC_STATE_SVC;


    // Discovery simple BLE service

    GATT_DiscPrimaryServiceByUUID(centralConnHandle,

                                  uuid,

                                  ATT_BT_UUID_SIZE,

                                  centralTaskId);

}

如题,函数内部uuid的值为0xFFFE,我看该函数是在建立连接后调用的,同时没有找到其他的寻找service的函数。请问centralStartDiscovery这个函数会发现从机的所有service吗还是只能发现uuid为0xFFFE的这个service呢?

您好,下方函数只可以找指定uuid的服务,

GATT_DiscPrimaryServiceByUUID

如果需要枚举所以服务,需要调用:

GATT_DiscAllPrimaryServices

请问 GATT_DiscAllPrimaryServices 函数有在哪个例程中使用过吗?搜索了主机例程、从机例程、主从机例程、BLE_USB例程、BLE_UART例程等都没有找到哪里掉用过这个函数。


给出的例程是对基本功能的示例,并非每个库函数都会调用。可自行在static void centralStartDiscovery(void)函数下调用。

GATT_DiscAllPrimaryServices



只有登录才能回复,可以选择微信账号登录