乐鑫技术交流
直播中

一刀两断

9年用户 1067经验值
私信 关注
[问答]

ESP32-C3蓝牙gatt_server_service_table的私有服务修改为128bit UUID的问题求解

相关环境

1.硬件部分使用的是:ESP32-C3-DevKitM-1,搭载ESP32-C3-MINI-1模组

2.软件部分,IDF 的具体版本是:V4.3.1(release version)

3.开发环境:操作系统为Windows  7;IDE,为VS Code

问题描述

    我想在esp-idfexamplesbluetoothbluedroidblegatt_server_service_table的DEMO上修改16bit 的私有服务UUID为128bit的UUID,但改完后烧录的串口信息会报错,ble调试软件可以连接上蓝牙但是看不到该服务,我想知道是否有修改128bit UUID的相关DEMO。

    使用的手机型号为小米9,蓝牙助手软件为  BLE调试宝

    在触发BTA_GATTS_API_START_SRVC_EVT时,报错的函数的函数为esp-idfcomponentsbthostbluedroidbtagattbta_gatts_main.c的bta_gatts_hdl_event函数

    附上我修改的C源文件,修改代码图片,Log信息和报错的函数图片,没有修改menuconfig

修改的代码部分(另附上修改的源文件):

1.

/* Service */

//static const uint16_t GATTS_SERVICE_UUID_TEST      = 0x00FF;

static const uint8_t  GATTS_SERVICE_UUID_TEST[16]  = {0x23,0xD1,0xBC,0xEA,0x5F,0x78,0x23,0x15,0xDE,0xEF,0x12,0x12,0x23,0x15,0x00,0x00};



2.

/* Full Database Description - Used to add attributes into the database */

static const esp_gatts_attr_db_t gatt_db[HRS_IDX_NB] =

{

    // Service Declaration

    [IDX_SVC]        =

    {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_128, (uint8_t *)&primary_service_uuid, ESP_GATT_PERM_READ,

      sizeof(GATTS_SERVICE_UUID_TEST), sizeof(GATTS_SERVICE_UUID_TEST), (uint8_t *)GATTS_SERVICE_UUID_TEST}},

......

}

更多回帖

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