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.

[参考译文] CC2340R5:如何处理外设的连接步骤

Guru**** 2589245 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1396349/cc2340r5-how-i-can-handle-the-connection-steps-of-peripheral-device

器件型号:CC2340R5

工具与软件:

您好!

我一直在开发一种用于处理 BLE 连接状态情况的功能、成功绑定 BLE 后、已建立连接、以及成功进行密钥身份验证。

我已尝试    在中为 BLEAPPUTIL_BOND_COMPLEENT_EVENT 和 BLEAPPUTIL_AUTHY_COMPLER_EVENT 添加事件掩码  

BLE4.12.451_t Util_Event connectionConnHandler =

.handlerType = BLEAPPUTIL_GAP_CONN_TYPE、
.pEventHandler = Connection_Conn 791-Handler、
.EventMask = BLEAPPUTIL_LINK_ESTABED_EVENT |
BLEAPPUTIL_LINK_TERMINED_EVENT |
BLEAPPUTIL_LINK_PARAM_UPDATE_EVENT |
BLEAPPUTIL_LINK_PARAM_UPDATE_REQ_EVENT |
BLEAPPUTIL_BOND_COMPLETE_EVENT |
BLEAPPUTIL_ATCHING_COMPLETE_EVENT
};

并 在以下环境中处理这些事件-  

void 4.2000 Connection_Conn 处理程序(uint32事件、BLEAppUtil_msgHdr_t *pMsgData)

交换机(事件)

//其他执行情况

案例 BLEAPPUTIL_ATCHING_COMPLEE_EVENT:

  GPIO_WRITE (CONFIG_GPIO_OUTPUT_PIN_1);
   休息;
}

案例 BLEAPPUTIL_BOND_COMPLETE_EVENT:

  GPIO_WRITE (CONFIG_GPIO_OUTPUT_PIN_2、1);
   休息;
}

}
}

在启动连接过程、然后输入密钥并完成绑定后、

但这些事件似乎没有被触发。 已尝试通过将断点放置在这些情况下的实现中来进行调试、但未按预期工作。

请指定是否需要执行其他操作才能触发这些事件、以便在这些情况下执行我的任务。

谢谢你。

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

    尊敬的 Aman:

    感谢您的帮助、我设法重现与您相同的行为、我需要一些时间来进一步调查这些事件。 同时、您能否检查是否可以改用 BLEAPPUTIL_PAIRING_STATE_ENCRYPABRATED 和 BLEAPPUTIL_PAIRING_STATE_BOND_SAVED 事件、请在 app_pairing.c 文件中找到更多详细信息。

    此致
    Tanguy

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

    我可以使用 BLEAPPUTIL_PAIRING_STATE_COMPLETE 事件管理我的任务、但在从中央设备(移动电话应用程序)删除绑定后。 我的 BLE 模块绑定中似乎没有删除。  
    是否有任何方法可以让堆栈知道中央设备何时删除与它的绑定?

    我想在配对完成后打开 GPIO、该配对由 BLEAPPUTIL_PAIRING_STATE_COMPLETE 处理。 一旦绑定了设备,我就会 通过检查 linkDB_Bonded ()来处理 BLEAPPUTIL_LINK_ESTABED_EVENT 中的 GPIO ,但一旦我从中央设备中删除了绑定。  

     我在   BLEAPPUTIL_LINK_POSTED_EVENT 中调用 linkDB_Bonded(gapEstMsg->connectionHandle);API 、它返回 true。 我希望它在我删除绑定后返回 false。  

    请帮助我解决此问题、我要在配对完成后连接器件时将 GPIO 设为高电平、在器件断开连接时将其设为低电平。  

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

    尊敬的 Aman:

    在中央设备上删除绑定信息时、外围设备上不会发送任何事件。 但是、当再次重新连接到中央器 件 linkDB_Bonded(gapEstMsg->connectionHandle)时、函数应返回 false。

    我希望这对您有所帮助、

    Tanguy