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.

[参考译文] LAUNCHXL-CC26X2R1:如何缓慢断开连接

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1485655/launchxl-cc26x2r1-how-do-i-disconnect-gracefully

器件型号:LAUNCHXL-CC26X2R1

工具与软件:

大家好!

在 SimpleBLEPeripheral SDK v7.40中、当用户按下外设 PCB 上的按钮时、我希望外设断开连接。

我只允许一个活动 BLE 连接。 当外设没有连接时、它将返回进行广播。

我希望它运行的代码与中的代码完全相同

      案例 GAP_LINK_Terminated_event

但我找不到一种简单的方法来做到这一点。

系统正确检测到按钮按压操作并生成事件、我在主循环中尝试了此操作

             gapEventHdr_t GE;
             ge.opcode = gap_link_termined_event;
             ProjectZero_processGapMessage (≥);

实际上、连接已断开、但随后断开

             if (linkDB_NumActive ()< MAX_NUM_BLE_CONns)

静止计数1连接、并且外设不会再次广播、因此这不是正确的方法。

当您正确地与中央设备断开连接时、无需按下外设 PCB 上的按钮、此类线路返回0、并且我的外设再次进行广播。

我是如何正确地从外设断开、以便它重新开始广播的呢? 让我们来看看您的想法。 提前感谢您的参与!

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

    您好!

    感谢您联系我们! 我们将查看您的查询并尽快回复您。

    此致、

    1月

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

    尊敬的卡佐拉:

    我使用的是 CCSv12.3和 SDKv7.10。 在使用简单外设示例程序的情况下、我使用 GAP_TerminateLinkReq ()在按下左侧按钮时终止连接。 请参阅以下代码。

    static void SimplePeripheral_handleKeys(uint8_t keys)
    {
      if (keys & KEY_LEFT)
      {
        // Check if the key is still pressed. Workaround for possible bouncing.
        if (GPIO_read(CONFIG_GPIO_BTN1) == 0)
        {
          GAP_TerminateLinkReq(connList[0].connHandle, 0);
          tbm_buttonLeft();
        }
      }
      else if (keys & KEY_RIGHT)
      {
        // Check if the key is still pressed. Workaround for possible bouncing.
        if (GPIO_read(CONFIG_GPIO_BTN2) == 0)
        {
          tbm_buttonRight();
        }
      }
    }

    -kel

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

    这是可行的、我只需要再等一点

    谢谢