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:没有进行连续扫描 i'm 正在尝试进行扫描、但有一个正在扫描、然后没有进行扫描。

Guru**** 2589245 points
Other Parts Discussed in Thread: CC2340R5

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1398968/cc2340r5-continuous-scanning-is-not-happening-i-m-trying-to-do-it-but-one-is-scanning-after-that-its-not-happen

器件型号:CC2340R5

工具与软件:

您好!

器件:CC2340R5

CCS 版本:12.6

SDK 版本: simplelink_lowpower_f3_sdk_7_40_00_64

我使用 CC2340R5作为中央设备、我调用 scan_enable ()函数 continuous 但它只扫描一次。

我在这个函数中创建了单独的函数 demo.c、我定义了一些类似的函数

void scan_device (void)

   BLEAppUtil_invokeFunctionNoData ((InvokeFromBLEAppUtilContext_t) Scan_connect);
}

//已定义扫描参数  

void Scan_connect (void)

 

   const BLE4519_concentralScanStartParams Util_Scan =
      {
       /*! 对于持续扫描、为零*/
       .scanPeriod    = 0、//default_scan_period、/*单位为1.28sec *

 

       /*! 扫描持续时间应大于扫描间隔*/
       /*! 零持续扫描。 */
       .scanDuration  = 100、//DEFAULT_SCAN_DURATION、/*单位为10ms */

 

       /*! 如果非零、则广告报告列表将为*/
       /*! 生成并具有@ref GAP_EVT_SCAN_DISABLED。  */
       .maxNumReport  = 20 //APP_MAX_NUM_OF_ADV_REPORTS
      };

 

      BLEAppUtil_scanStart (&centralScanStartParams);
}

我在 一个任务中调用 Scan_connect()这个函数,但它只是在它没有到达 scan_enable ()函数之后才第一次调用。

bStatus_t BLEAppUtil_scanStart (const BLE387BLESCRAIN_357t Util_Scan *scanStartInfo)


返回 GapScan_enable (scanStartInfo->scanPeriod、scanStartInfo->scanDuration、scanStartInfo->maxNumReport);


}

//当 我调用上述函数时,我创建了新的  scan_device (),这是在一个任务中调用,但它只调用一次后,该程序连续运行,但它正在进入一些头文件,为什么它启用下一次调用。

我将随附该文件的屏幕截图  

上面的屏幕截图将有助于识别问题。

请检查它并给我回复。

谢谢。此致

Balaji Wankhede

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

    问候 Balaji、

    感谢您的提问。 首先我想问的是您在哪里禁用扫描。 当您将扫描设置为周期为0时、它将继续扫描、直到您特别调用扫描禁用。 从您的应用程序中、您似乎多次调用扫描启用而不调用扫描禁用、这可能会导致问题。 您能为我澄清一下吗?

    此致!
    Achyut Ray

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

    你好、Balaji、  

    在代码中、您已设置.scanDuration = 100。 您是否也尝试过将此持续时间设置为0以查看器件是否将持续扫描?

    此致、  

    David

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

    是的先生,我也尝试了,但它不是连续扫描只有一次它扫描后,它会进入一些不需要的功能(堆功能,我在屏幕截图中提到).

    有什么建议请告诉我。

    谢谢、此致  

    Balaji Wankhede

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

    感谢您的答复。

    我没有禁用扫描、但当设备未连接到外围设备时、我在每500ms 后调用 scan_enable ()函数。

    while (connection_check=0) //未连接  

    BLE_SCAN_DEVICE ()
    vTaskDelay (pdms_to_ticks (500));
    }

    但在本例中、它只扫描一次。

    如果您需要任何其他信息、请告诉我。

    谢谢、此致

    Balaji Wankhede

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

    你好、Balaji、  

    请查看此链接以了解 调试堆问题。此外、请尝试在每次延迟之后调用扫描禁用、然后再调用下一次扫描设备。  

    此致、  

    David