乐鑫技术交流
直播中

杨静

7年用户 1466经验值
私信 关注
[问答]

ESP32-C3 BLE client如何连接同一个server的多个service?

最近在做一个项目需要ESP32-C3作为BLE client 连接同一个server的两个service。

网上的例程都是连接多个server的各一个service。自己尝试修改官方的例程:


Code: [Select all] [Expand/Collapse]
  • /* One gatt-based profile one app_id and one gattc_if, this array will store the gattc_if returned by ESP_GATTS_REG_EVT */
  • static struct gattc_profile_inst gl_profile_tab[PROFILE_NUM = {
  •     [PROFILE_A_APP_ID = {
  •         .gattc_cb = gattc_profile_event_handler,
  •         .gattc_if = ESP_GATT_IF_NONE,       /* Not get the gatt_if, so initial is ESP_GATT_IF_NONE */
  •     },
  •     [PROFILE_B_APP_ID = {
  •         .gattc_cb = gattc_profile_b_event_handler,
  •         .gattc_if = ESP_GATT_IF_NONE,       /* Not get the gatt_if, so initial is ESP_GATT_IF_NONE */
  •     },
  • };



GeSHi © Codebox Plus Extension



Code: [Select all] [Expand/Collapse]
  • esp_ble_gattc_open(gl_profile_tab[PROFILE_A_APP_ID.gattc_if, scan_result->scan_rst.bda, scan_result->scan_rst.ble_addr_type, true);
  • esp_ble_gattc_open(gl_profile_tab[PROFILE_B_APP_ID.gattc_if, scan_result->scan_rst.bda, scan_result->scan_rst.ble_addr_type, true);



GeSHi © Codebox Plus Extension



运行的时候会有heap相关的错误,无法成功。请问这样写是否合理? 有没有连接同一个设备不同service的例程?

更多回帖

发帖
×
20
完善资料,
赚取积分