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.

[参考译文] CC2640:调用 UART_READ、然后无法与其他 BLE 中央设备连接

Guru**** 2582405 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/564644/cc2640-call-uart_read-then-unable-connect-with-other-ble-central

器件型号:CC2640

我的项目基于简单外设(栈2.2.1),首先 我初始化一个具有读取回调模式的 UART,
然后我调用 UART_READ 开始读取,我的项目可以进行广播,但无法使用 lightblue 连接。
那么有趣的是,如果我在与 BLE 中央设备连接之前将模块的 Rx 引脚连接到另一个模块 TTL TX 引脚,
一切都好、我可以平稳地与其他 BLE 中心连接、然后我通过其他模块的 TX 引脚断开模块的 Rx、
该连接将立即断开、


 另一种情况是,如果我 初始化 UART,但不调用 UART_READ,则一切正常,
 我可以顺利地与其他的中心连接,连接很稳定,如果有人能解决我的困惑,我会很感激。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的 UART 任务的优先级是多少? 您能否发布您如何将 UART 读取的代码片段?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    UART 任务优先级为1、

    UART_INIT();
    UART_Params_init (&UartParams);

    UartParams.budrate = 115200;//115200;

    UartParams.readDataMode = UART_DATA_BINARY;
    UartParams.writeDataMode = UART_DATA_BINARY;
    UartParams.readCallback = UartRcvDoneCb;
    UartParams.readMode = UART_MODE_CALLACK;

    UartParams.writeCallback = UartSendDoneCb;
    UartParams.writeMode = UART_MODE_CALLBACK;

    UartParams.readEcho = UART_ECHO_OFF;

    UartHdl = UART_OPEN (0、&UartParams);

    //启用对所有后续 UART_READ()的部分读取
    UART_CONTROL (UartHdl、UARTCC26XX_RETURE_PARTIAL_ENABLE、空);

    UART_READ (UartHdl、UartRcvBuff、UART_one_receive_data_Byte_MAX);//开始 UART 读取

    上面的代码位于 UART 任务初始化部分
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否发布整个 UART 任务、而不仅仅是代码的初始化部分?

    如果您使用 TI-RTOS ROV 视图、能否查看您的 UART 任务是否始终运行、导致连接终止?