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:如何在主 CPU 唤醒时打开或关闭布尔连接

Guru**** 2609955 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1260861/cc2640r2f-how-to-turn-on-or-off-ble-connection-when-main-cpu-wakes-up

器件型号:CC2640R2F

您好!

我正在使用 cc2640r2作为 ble 外围设备。 我正在使用 ADC 数据流转换器传感器控制 器、其中传感器控制器会在采样缓冲器半满时唤醒系统 CPU 应用程序。

我想系统 CPU 在它唤醒时打开 ble 连接,然后在发送缓存数据后,它应该关闭 ble 连接,然后下一个周期...有人可以帮助我做这个任务吗?

谢谢。

Saikumar.

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

    尊敬的 Saikumar:

    感谢您与我们联系。

    听起来您有两个选项:

    -要么您喜欢始终保持低功耗蓝牙连接处于活动状态,当您从传感器控制器获得一些数据时,您可以通过连接传输这些数据。

    或者,您更愿意在每次有数据要传输时建立连接。 在这种情况下、当您从传感器控制器获取一些数据时、应该打开广播

    两个选项都有效。 最合适的选择取决于您希望传输数据的频率以及可以接受的延迟时间。

    请告诉我您的想法。

    此致、

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

    感谢您的答复。

    我需要第二个选项、如何操作? 我希望每5分钟发送一次传感器控制器的数据。

    1.如何确保我的数据在关闭 ble 之前发送?  

    2.在哪里可以禁用和启用简单外设.c 代码中的广播。

    在这种情况下,应在从传感器控制器获得一些数据时打开广播
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请参阅您正在使用的蓝牙堆栈( BLEStack 或 BLE5Stack )的用户指南、以查看如何启用和禁用广播。

    当要确保在关闭低功耗蓝牙连接之前完成传输时、您可以考虑让 GATT 客户端在检索所有数据后触发断开。

    我希望这将有所帮助、

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以考虑让 GATT 客户端在检索完所有数据后触发断开连接。

    我不明白,你能多澄清一下吗?

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

    我在 BLE 堆栈中找到它、  

    该应用任务处理从低功耗蓝牙协议栈传递给它的大多数 GAP 相关事件。 例如、当链路终止时、应用程序会自动重新启动广播。 可以在中找到以下代码片段 simple_peripheral.c

    清单52.  simple_peripheral.c : SimplePeripheral_processGapMessage ()  -中断后重新启动广播
    1
     2
     3
     4
     5
     6
     7
     8
     9
     10
     11
     12 
    静态 SimplePeripheral_processGapMessage (gapEventHdr_t * pMsg)
    
    //…… 
    案例 GAP_LINK_ENTERMIND_EVENT
    { 
    //…… 
    
    //重新启动广播,因为现在存在活动连接 
    GapAdv_enable (advHandleLegacyGAP_ADV_ENABLE_OPTIONS _USE_MAX0); 
    
    //…… 
    中断; 

    我想在5分钟后重新开始广播。 如何执行该操作?

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

    您好!

    我想在5分钟后重新启动广告。 如何进行此操作?

    当从传感器控制器接收事件时、您可以使用计时器或启用广播。

    在所有情况下、请记住应在任务上下文中调用 GapAdv_enable。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在所有情况下,请记住应在任务上下文中调用 GapAdv_enable。

    您能解释一下、怎么做?

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

    您好!

    当在 SWI 上下文中接收到事件时、请确保传递一个事件、该事件将在任务上下文中进行处理。 例如、SimplePeripheral_advCallback 中的 simple_peripheral 示例展示了这一点。 事件(SP_ADV_EVT)在回调中排队、并在 SimplePeripheral_processAppMsg > SimplePeripheral_processAdvEvent 内进行处理。

    我希望这将有所帮助、

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    -或者,您更愿意在每次有要传输的数据时建立连接。 在这种情况下,当您从传感器控制器获得一些数据时,应该打开广播[/引号]

    如果您指导我如何操作(如上所述)、它将对我更有帮助。

    此致、

    Saikumar. V

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

    你好、Saikumar。 V、

    不应在 SensorController_taskalertCallback 中执行 Role_Set G45Ceter (请参阅我之前的消息)。 请将其从 SensorController_taskalertCallback ()中删除。

    -那么,验证您是否管理有定期执行 SensorController_taskalertCallback ()函数? 如果未正确配置、则表示传感器控制器未正确配置

    -一旦你定期执行 SensorController_taskalertCallback ()函数,在每次执行时发布一个事件(查看如何完成 SBP_PERIOD_EVT_PERIOD )。 然后,在任务上下文中执行 G45Ci Role_Set 联络员。

    此致、