当前位置: 首页 > 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中心无法读取外设特性值 - 低功耗蓝牙 - 瑞萨电子无线连接 - 瑞萨电子技术网络社区

http://www.xdnf.cn/news/466111.html

相关文章:

  • 掌握Multi-Agent实践(七):基于AgentScope分布式模式实现多智能体高效协作[并行加速大模型辅助搜索、分布式多用户协同辩论赛]
  • 基于智能推荐的就业平台的设计与实现(招聘系统)(SpringBoot Thymeleaf)+文档
  • 鸿蒙OSUniApp 制作简洁高效的标签云组件#三方框架 #Uniapp
  • [吾爱出品] 中医问诊辅助记录软件
  • Missashe考研日记—Day37-Day43
  • SAP ABAP 中驼峰字段名转 JSON 的实现方案
  • DG-3F三指机械灵巧手,3手指和12关节,单爪即可实现最高效率
  • 1.1 认识编程与C++
  • 7、MinIO服务器简介与安装
  • Figma 新手教程学习笔记
  • 高项-逻辑数据模型
  • 【数字图像处理】半开卷复习提纲
  • C40-指针
  • 在线文档管理系统 spring boot➕vue|源码+数据库+部署教程
  • 用vlookup函数根据基因名查找基因对应的CNV数据
  • Scratch作品 | 3D原野漫游
  • 班会内容模板
  • Obsidian Callouts标注框语法
  • 从卡顿到丝滑:JavaScript性能优化实战秘籍
  • 人大金仓数据库 与django结合
  • 【BotSharp详细介绍——一步步实现MCP+LLM的聊天问答实例】
  • 火山引擎发展方向
  • 虚拟网络编辑器
  • ArcGIS Pro地块图斑顺序编号(手绘线顺序快速编号)-004
  • InforSuite AS 可以发布django和vue项目是否可行
  • 机器学习笔记3
  • C++核心编程--3 函数提高
  • AAC 协议
  • 计量——异方差的检验及其修正
  • day26 Python 自定义函数