微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > C2640R2F 更新连接参数,debug发现更新时部分手机类型执行 GAP_UPDATE_LINK_PARAM_REQ_EVENT 分支失败,其他仅执行events & START_CONN_UPDATE_EVT能成功;怎么解决?

C2640R2F 更新连接参数,debug发现更新时部分手机类型执行 GAP_UPDATE_LINK_PARAM_REQ_EVENT 分支失败,其他仅执行events & START_CONN_UPDATE_EVT能成功;怎么解决?

时间:10-02 整理:3721RD 点击:

 请教:
2640R2F 更新连接参数时,如果执行分支:
if (events & START_CONN_UPDATE_EVT)
      {
        // Start connection update procedure
        gapRole_startConnUpdate(GAPROLE_NO_ACTION, &gapRole_updateConnParams);
      }
更新成功;
但是有的是执行gapRole_processGAPMsg() 里的
 case GAP_UPDATE_LINK_PARAM_REQ_EVENT:
      分支,导致更新失败(好像是先执行了之前的更新分支,因为启动定时器了,又执行这个),操作完成后,
连接参数没更新,什么情况? 

你说的是不是 case GAP_LINK_PARAM_UPDATE_EVENT?有返回不正常的状态吗?

不是你说的这个分支,正常情况下:

连接确立之后case GAP_LINK_ESTABLISHED_EVENT

启动定时器,直到事件发生,

 if (events & START_CONN_UPDATE_EVT)

       gapRole_startConnUpdate(GAPROLE_NO_ACTION, &gapRole_updateConnParams);

执行更新,这个流程正常,

但是有的手机会执行到case GAP_UPDATE_LINK_PARAM_REQ_EVENT:分支里面,这里为什么?

而且这种情况下,连接参数没有更新;

还有,论坛沟通效率太低了……

主机先请求更新,请求接受后,执行更新:LL_Connection_Update_Req,执行到case GAP_UPDATE_LINK_PARAM_REQ_EVENT:分支,同时中断了从机请求更新的定时器,稍后,主机再次请求更新请求接受后,执行更新:LL_Connection_Update_Req,导致后一次更新生效,而后一次即是连接较慢的参数;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top