[BlueNRG] Bluenrg_为啥我无法添加自己的服务或者特征值

[复制链接]
 楼主| qqjmjso 发表于 2024-7-14 21:46 | 显示全部楼层 |阅读模式
一添加就失败

xiaoqi000 发表于 2024-7-26 13:30 | 显示全部楼层
确保在添加服务和特征值之前,已正确初始化蓝牙堆栈和设备。通常的初始化步骤包括:

启动设备。
重置设备。
配置蓝牙堆栈。
设置设备地址。
xiaoqi000 发表于 2024-7-26 13:30 | 显示全部楼层
确保服务和特征值的定义符合蓝牙规范。以下是添加服务和特征值的基本步骤:

添加服务
c

tBleStatus ret;
uint16_t service_handle;
const uint8_t service_uuid[16] = { /* Your 128-bit UUID */ };

ret = aci_gatt_add_serv(UUID_TYPE_128, service_uuid, PRIMARY_SERVICE, 7, &service_handle);
if (ret != BLE_STATUS_SUCCESS) {
    // Handle error
}
xiaoqi000 发表于 2024-7-26 13:31 | 显示全部楼层
添加特征值
c
uint16_t char_handle;
const uint8_t char_uuid[16] = { /* Your 128-bit UUID */ };

ret = aci_gatt_add_char(service_handle, UUID_TYPE_128, char_uuid, 20, CHAR_PROP_READ | CHAR_PROP_WRITE, ATTR_PERMISSION_NONE, GATT_DONT_NOTIFY_EVENTS, 16, 1, &char_handle);
if (ret != BLE_STATUS_SUCCESS) {
    // Handle error
}
xiaoqi000 发表于 2024-7-26 13:31 | 显示全部楼层
检查错误代码
在调用蓝牙堆栈API时,检查返回的错误代码。常见的错误代码及其含义包括:

BLE_STATUS_SUCCESS: 操作成功。
BLE_STATUS_FAILED: 操作失败,一般是由于参数错误或资源不足。
BLE_STATUS_INVALID_PARAMS: 参数无效,检查UUID、长度等参数是否正确。
BLE_STATUS_OUT_OF_MEMORY: 内存不足,检查是否有足够的内存分配给蓝牙堆栈。
纠结的那些年 发表于 2024-7-26 13:32 | 显示全部楼层
确保系统有足够的内存和资源分配给蓝牙堆栈。BlueNRG设备有内存限制,如果内存不足,可能导致添加服务或特征值失败。
纠结的那些年 发表于 2024-7-26 13:33 | 显示全部楼层
BlueNRG库通常提供调试功能,可以输出详细的操作日志。
纠结的那些年 发表于 2024-7-27 21:19 | 显示全部楼层
重置设备(硬件或软件重置)可以解决问题。在尝试添加服务和特征值之前,确保设备处于已知的初始状态。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

66

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部