当前位置: 首页 > news >正文

Da14531蓝牙特征值1读没有回调解决

一. 我们调试中发现user_peripheral.c中的回调,一直都没有回调。(大家可以通过打印去排查)

void user_catch_rest_hndl(ke_msg_id_t const msgid,

                          void const *param,

                          ke_task_id_t const dest_id,

                          ke_task_id_t const src_id)

{

//此处省略一部分代码。

   case CUSTS1_VALUE_REQ_IND:

        {

            struct custs1_value_req_ind const *msg_param = (struct custs1_value_req_ind const *)param;

            switch (msg_param->att_idx)

            {

                case SVC1_IDX_ADC_VAL_1_VAL:

                {

                     // Increase value by one

                    struct custs1_value_req_rsp *rsp =                      KE_MSG_ALLOC_DYN(CUSTS1_VALUE_REQ_RSP,

                                                                        prf_get_task_from_id(TASK_ID_CUSTS1),

                                                                        TASK_APP,

                                                                        custs1_value_req_rsp,

                                                                        DEF_SVC1_ADC_VAL_1_CHAR_LEN);

                    // Provide the connection index.

                    rsp->conidx  = app_env[msg_param->conidx].conidx;

                    // Provide the attribute index.

                    rsp->att_idx = msg_param->att_idx;

                    // Force current length to zero.

                    rsp->length  = DEF_SVC1_ADC_VAL_1_CHAR_LEN;

                    // Provide the ATT error code.

                    rsp->status  = ATT_ERR_NO_ERROR;

                    // Copy value

                    memcpy(&rsp->value, &data[0], rsp->length);

                    // Send message

                    KE_MSG_SEND(rsp);

                }

                break;

//此处省略一部分代码

           }

//此处省略一部分代码

   }

//此处省略一部分代码
}

二. 后来发现需要在user_custs1_def.c中的属性表加上相关的权限声明(红色部分即权限声明,加上之后user_peripheral.c即可有正常回调。)

/// Full CUSTS1 Database Description - Used to add attributes into the database
const struct attm_desc_128 custs1_att_db[CUSTS1_IDX_NB] =

{

//此处省略一部分代码

    // ADC Value 1 Characteristic Value
    [SVC1_IDX_ADC_VAL_1_VAL]           = {SVC1_ADC_VAL_1_UUID_16, ATT_UUID_16_LEN, PERM(RD, ENABLE) | PERM(NTF, ENABLE),
                                            DEF_SVC1_ADC_VAL_1_CHAR_LEN|PERM(RI, ENABLE), 0, NULL},

//此处省略一部分代码

}

三. 官方参考资料,虽然没有明示需要加上“PERM(RI, ENABLE)”,但可以很明显看到这个区别。

DA14531特性读写 - 低功耗蓝牙 - 瑞萨无线连接 - 瑞萨电子工程社区

5. 创建自定义配置文件服务 — DA145XX教程 创建自定义 GATT 配置文件

在外设中启用中央连接功能启用通知时,DA14531中心无法读取外设特性值 - 低功耗蓝牙 - 瑞萨电子无线连接 - 瑞萨电子技术网络社区

相关文章:

  • DataHub:现代化元数据管理的核心平台与应用实践
  • 数据结构与算法-线性表-单链表(Linked List)
  • 【免费分享】虚拟机VM(适用于 Windows)17.6.3
  • 一文讲透 Vue3 + Three.js 材质属性之皮革篇【扫盲篇】
  • JAVA:多线程使用哈希表
  • Java类加载器深度解析:从原理到实践
  • 通用软件项目全技术栈综合能力评估 - 架构师级挑战
  • 第三章:JavaScript引擎 · 行为之火
  • 黑马程序员c++2024版笔记 第一章
  • vue-quill-editor富文本编辑器
  • 【有理数加法结构体】2022-1-3
  • “禁塑行动·我先行”环保公益项目落地宁夏,共筑绿色生活新篇章
  • HashSet
  • 使用CMake中的configure_file命令自动生成项目版本信息
  • 后端面试题:java中什么是快速失败?
  • 白平衡模块中普朗克曲线拟合硬件实现的猜想
  • 在你窗外闪耀的星星--一维前缀和
  • 强化学习入门:马尔科夫奖励过程
  • vue3项目中使用CanvasEditor开箱即用(组件的形式,组件封装好了)
  • Makefile -------- 简单介绍
  • 国家统计局向多省份反馈统计督察意见
  • 武大校长:人工智能不存在“过度使用”,武大不会缩减文科
  • 既是工具又是食物,可食用机器人开启舌尖上的新科技
  • 温州通报“一母亲殴打女儿致其死亡”:嫌犯已被刑拘
  • 日本前卫艺术先驱群展上海:当具体派相遇古树古宅
  • 第78届戛纳电影节开幕,罗伯特·德尼罗领取终身成就奖