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**** 2595800 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1352649/cc2340r5-scan-filter-and-connect

器件型号:CC2340R5

SDK 版本:7_10_00_35

CCS 版本:12.2.0.00009  

(1)如何让 CC2340过滤扫描器件的 MAC 地址?
例如、我希望仅保留从0xB0开始的器件

这是我当前的示例代码:



(2)当我要将 CC2340置于中央模式时、如何连接到在线扫描的器件? 是否有可以应用的示例或某些函数? 例如、app_connection.c 或 app_central.c 的哪个部分

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

    您好、Ryan、

    感谢您获得支持。

    只将器件从0xB0开始的最简单方法是手动将其从广播报告中滤除、您可以考虑使用下面的一个片段。

    请注意、我尚未对代码进行全面测试。

    // Go over the advertise reports that was saved in the host level and save it
    for (i = 0; i < scanMsg->pBuf->pScanDis.numReport; i++)
    {
        GapScan_Evt_AdvRpt_t advReport;
        // Get the address from the report
        GapScan_getAdvReport(i, &advReport);
        
        if (advReport.addr[0] == 0xB0)
        {
            // Add the report to the scan list
            Observer_addScanRes(&advReport);                  
        }
    }

    您可以在 basic_ble 中找到示例、请查看 app_menu.c 中的 Menu_connectToDeviceCB  

    我希望这对您有所帮助。

    丹桂语

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

    您好、 Tanguy:

    (1)我查看  app_menu.c 中的 Menu_connectToDeviceCB,并参考本文 CC2340R5:中央到外设自动连接-蓝牙论坛- BluetoothRegistered︎- TI E2E 支持论坛

    我尝试连接,但不成功,如下面所示,它返回状态== 0x15 ,然后我检查0x15表示"没有可用的资源"


    (2) CC2340能否扫描器件名称?  我检查了 Stk_Gap 的结构"11G_EVT_ADVR.pt_t" 、没有用于存储设备名称的参数。

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

    您好、Ryan、

    我想您会遇到0x15错误、因为 BLEAppUtil_connect 被多次调用、是否可以确保只调用一次该函数?

    pData 缓冲区中应存在器件名称、请查看此 e2e 来解析广播数据。

    (+) CC2340R5:广播 pData 解析扫描结果-蓝牙论坛- BluetoothRegistered︎ ñ ol - TI E2E 支持论坛

    希望这对您有所帮助、

    丹桂语

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

    我在 app_menu.c 中注释掉 Menu_connectToDeviceCB、BLEAppUtil_connect 将返回成功、这意味着连接成功、对吗? 连接后应如何操作? 例如、我想通过 FFF1向连接的器件发送命令。

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

    您好、Ryan、

    BLEAppUtil_connect 并不意味着连接成功、而是意味着器件已成功进入启动器状态。 用户指南包含有关不同 GAP 状态的更多详细信息: 通用访问配置文件(GAP)—SimpleLink CC23xx SDK BLE5-Stack 用户指南3.02.01.00文档

    请查看基本的 GATT 客户端示例: simplelink_low_power_f3_SDK-7.20 TexasInstruments/ble_examples GitHub 上的 BLE_examples/rtos/LP_EM_CC2340R5/ble5stack/basic_ble_GATT_CLIENT: ··

    当收到 BLEAPPUTIL_LINK_SEATED_EVENT 事件时、便会建立连接。 请查看 app_connection.c 中的 Connection_Conn Handler.

    另请查看 APP_MENU 文件中的 Menu_doGattWriteCB。

    此致

    丹桂语

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

    (1) CC2340在调用 BLEAppUtil_CONNECT()后进入 Connection_Conn 4552 Handler()的 BLEAPPUTIL_LINK_SEATED_EVENT 事件,但 CC2340很快将进入 BLEAPPUTIL_LINK_ENTERMIND_EVENT。 我如何确保它可以继续连接并且不会自动断开连接? 或需要 CC2340断开时。 连接状态已断开

    (2)我没有在 APP_MENU 文件中找到任何关于 Menu_doGattWriteCB 的信息。

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

    您好、Ryan、

    建立链路后、会保留该链路、直到出现断开命令或错过多个连接事件为止。 有关连接的更多信息、请参阅此 SLA 具有 basic_ble 示例的低功耗蓝牙连接

    此外请记住、使用断点可能会干扰连接、请参阅调试指南(调试—SimpleLink CC23xx SDK BLE5-Stack 用户指南3.02.04.00文档)中的"断点和计时"部分

    很抱歉第2点存在误解、Basic_ble_GATT_CLIENT 中存在 Menu_doGattWriteCB、请在此处找到它: BLE_examples/rtos/LP_EM_CC2340R5/ble5stack/basic_ble_GATT_client/app_menu.c、位于 simplelink_low_power_asf3_SDK-7.20_Texble Hub/Examples ··

    希望这对您有所帮助、

    丹桂语

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

    您好、Tanguy
    (1)这是否意味着其他地方可能会有自动断开连接设置、导致连接在连接后不久进入 BLEAPPUTIL_LINK_ENTERMIND_EVENT?

    (2)我当前使用的 SDK 版本为7_40、但我没有看到 basic_ble_GATT_CLIENT 示例工程

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

    您好、Ryan、


    您能否为第1点创建一个新的 E2E 主题、那么跟踪这个问题将会更容易。
    对于第2点、请在此处找到指向 basic_ble_GATT_CLIENT 的链接:  
    BLE_examples/examples/rtos/LP_EM_CC2340R5/ble5stack/basic_ble_GATT_client/app_menu.c、位于 simplelink_low_power_f3_SDK-7.20·TexasInstruments/ble_examples GitHub ·

    此致、
    丹桂语

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

    (1)没有问题、谢谢

    (2)是否意味着我只需要根据链接更新 app_menu.c? 或下载该文件并覆盖原始 basic_ble 工程中的 app.menu.c。

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

    您好!

    对于第2点,请在此处找到指向 basic_ble_GATT_CLIENT 的链接:  
    BLE_examples/examples/rtos/LP_EM_CC2340R5/ble5stack/basic_ble_GATT_client/app_menu.c at simplelink_low_power_f3_SDK-7.20·Texasments/ble_examples Hub[/·quote][报价 userid=589790" url="~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1352649/cc2340r5-scan-filter-and-connect/5173318 #5173318"](2)是否仅表示需要根据该菜单更新应用程序链接? 或者下载它并覆盖原始 basic_ble 项目中的 app.menu.c。

    =>应在工作区中下载并导入 basic_ble_GATT_CLIENT 示例。
    恐怕只更改 app_menu.c 文件就不会包含您在项目中所需的功能。

    此致、

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

    嗨、克莱门特
    感谢您的回答。 我还有几个问题、我希望大家能够回答。

    (1)如果周围有许多蓝牙设备在运行、它是否会影响扫描? 因为我使用两个 CC2340进行测试、一个作为中央设备、一个作为外设、但当我使用 MAC 地址进行滤波时、我发现很难在用于测试的外设模式下扫描 CC2340。


    (2) SYSCFG 设置的扫描参数是否会影响 Code 中设置的扫描参数? 因为我发现、当我在 SYSCFG 中设置扫描参数时、Code 中的扫描参数不会相应地改变。 这是否意味着它们是单独的参数? 如果是这样、我应该使用 SYSCFG 参数作为主参数、或在代码中设置它们。 主要参数是什么?

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

    您好、Ryan、

    请在新的 e2e 主题中提出您的2个新问题、我们将更容易跟踪这些问题。

    此致、

    丹桂语

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

    好的,谢谢