This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2640R2F:连接多个从器件失败、无法打开通知。

Guru**** 2616675 points

Other Parts Discussed in Thread: CC2640, BLE-STACK

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1212405/cc2640r2f-connecting-multiple-slaves-failed-to-open-notify

器件型号:CC2640R2F
主题中讨论的其他器件:CC2640BLE-STACK

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1197578/cc2640r2f-when-multiple-slaves-were-connected-to-one-master-one-of-the-slaves-would-fail-to-turn-on-notify

拆分以上链接

hello、返回、0x16、

#define blePending 0x16.

需要等待。

当连接多个从器件时、无法打开通知。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alex:

    感谢您联系我们、

    请提供您正在使用的示例、您的 SDK 以及要连接到中央设备的器件数。

    此外、您能否为您的项目指定连接参数、这将有助于我们了解发生此错误的原因。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    主器件为 cc2642、从器件为 cc2640。

    当一个主站有6个从站时、 我可以开启"通知"并执行数据传输。 当一个主器件 有7个从器件时、第七个从器件无法开启"通知"。 当一个主器件有8个从器件时、第七个从器件  也无法开启"通知"。 如果 连接到主器件的从器件数量超过6个、我应该进行哪些修改来解决这个问题?

    SDK:simplelink_cc13x2_26x2_SDK_4_30_00_54

    simplelink_cc2640r2_sdk_4_20_00_04

      for(i=0;i<MAX_NUM_BLE_CONNS;i++)
        {
            req.pValue = GATT_bm_alloc(connList[i].connHandle, ATT_WRITE_REQ, 2, NULL);
            if ( req.pValue != NULL )
            {
                if(index ==SIMPLEPROFILE_CHAR1)
                {
                    req.handle = connList[i].charHandle+1;
                }
                else if(index ==SIMPLEPROFILE_CHAR2)
                {
                    req.handle = connList[i].charHandle+5;
                }
                req.len = 2;
                req.pValue[0] = LO_UINT16(GATT_CLIENT_CFG_NOTIFY); //0x0001 is to turn on 'notify'.
                req.pValue[1] = HI_UINT16(GATT_CLIENT_CFG_NOTIFY);
                req.sig = 0;
                req.cmd = 0;
    
                uint8_t status = GATT_WriteCharValue(connList[i].connHandle, &req, selfEntity);
    //            System_printf("Notification connHandle:%d,%d\r\n",connList[i].connHandle,i);
    
                CPUdelay(100);//250 * 48 / 4    //6*3
                if ( status != SUCCESS )
                {
                GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);
                  #ifdef uart_debug
    //                        System_printf("Notification failed:%d\r\n",i);
                            pStrAddr = (uint8_t*) Util_convertBdAddr2Str(connList[i].addr);
                        System_printf( "Notification failed:%d , %s\r\n",  i,pStrAddr);
                  #endif
    //                return false;
                            i--;
    //                        CPUdelay(6*3);
                }
    //            else
    //            {
    //            //                SimpleCentral_autoConnect();
    //            //                    System_printf("Notification success:%d\r\n",i);
    //                return true;//return use careful!
    //            }
            }
        }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是原来的帖子的问题,但现在他已经重新发布了它

    我一开始就附上了原来的链接

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alex:

    对不起,我没有看到你。 要在同一页上你复制的是完全相同的项目,但客户现在有这个错误?

    您能否提供项目的连接参数?

    BlePending 通常意味着 BLE-Stack 正忙于执行其他一些过程。 您能否发布监听器日志来记录这种情况?

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉,我没有抓住您。 要在同一页面上,您复制的是同一个项目,但客户现在有此错误吗?

    是的、当前问题源于 POST 开始时提供的链接、并且基于原始帖子、客户遇到了新问题

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我会为您提供您需要的信息,谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alex:

    经验总结起来似乎是内存问题。  我建议不要使用通知功能。 只需读取从器件的数据并将数据写入从器件。

    -kel