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.

[参考译文] CC2650:在 BLE 0x03流程中、仅一次

Guru**** 2609285 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/843337/cc2650-in-ble-0x03-flow-only-one-time

器件型号:CC2650

大家好、

我已经下载了 ble stack、然后加载到 cc2650中。 然后、当每5秒按一次通知0x03流时、我使用 nrf 连接器连接了 BLE。 我尝试了这种方法

IF (事件和 SBP_Periode_EVT)
{
//Util_startClock (周期时钟);

//执行周期性应用任务
SimplePeripheral_performPeriodicTask();
} 

这将只执行周期性任务1次。

静态空 SimplePeripheral_performPeriodicTask (void)
{
uint8_t valueToCopy;

//调用以检索配置文件中的第三个特征的值
if (SimpleProfile_GetParameter (SIMPLEPROFILE_CHAR3、&valueToCopy)= Success)
{
//调用以设置配置文件中第四个特征的值。
//请注意,如果已收到第四个特征的通知
// GATT 客户端设备启用,然后将发送通知
//每次调用此函数。
SimpleProfile_SetParameter (SIMPLEPROFILE_CHAR4、sizeof (uint8_t)、
ValueToCopy);
}

它通过浮置1次0x03即可正常工作。 但是、当我使用 btool 进行检查时、它不会在我们提供通知时提供0x03输出。您能给我提供帮助吗
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我不明白您的意思、周期性计时器会获取 char3的值并将其复制到 char4、然后作为通知发送。 您的问题是什么?

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

    您好!

    感谢您的回复、我只需要在按下通知时发送一次0x03、这是可能的吗?

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

    您好!

    当然、您所引用的代码只是演示 GATT 的示例。 它背后没有真正的用途、因此您可以根据需要对其进行修改。 Char3 -> Char4副本除了演示各种 GATT 模式之外、根本没有任何用途。

    我建议您仅在"按通知"时删除周期计时器并调用 set 参数

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

    您好!

    非常感谢您的回复 、您能否用代码解释详细信息、以便对我更有帮助?

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

    您好、Santhosh、

    请查看此 SLA 以了解我们软件的基本架构:

       

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

    尊敬的 Lin:

    感谢你的答复,我已经介绍了这一基本内容。 我希望0x03只产生一次输出、如果我尝试过最好的输出、我需要您的帮助

    IF (事件和 SBP_Periode_EVT)
    {
    //Util_startClock (周期时钟);
    
    //执行周期性应用任务
    SimplePeripheral_performPeriodicTask();
    } 
    我尝试停止时钟,它出现了0x03一次,但当我使用 btool 检查时,我没有得到0x03值,我不知道为什么我这么困惑。 我需要你们的帮助,我非常热情地学习这一点。