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.

[参考译文] CCS/LAUNCHXL-CC2650:时钟回调和 DISPLAY_PRINT 的多角色问题

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

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/607134/ccs-launchxl-cc2650-multi-role-problem-with-clock-callback-and-display_print

器件型号:LAUNCHXL-CC2650
Thread 中讨论的其他器件:CC2650

工具/软件:Code Composer Studio

你好

我将多角色项目用作 CC2650 LaunchXL 的起点。

我定义了一个时钟、并使其每5秒调用一次切换的函数。

该函数只需切换红色 LED、但它还使用 Display_print 将内容打印到 UART、如所示:

如果我在函数中使用一个 Display_print、则效果良好。 但是、如果我调用 Display_print 两次或更多、它只打印第一行、然后卡住。

我需要打印不止一行(对于某些函数、而不是 togleRedLed)。

我想我应该定义一个事件 ID 并使用 multi_role_enqueueMsg (EVT、pData)、并从将从 multi_role_processAppMsg (mrEvt_t * pMsg)调用的其他函数中打印我需要的内容、但这也不起作用。

有什么问题吗?

谢谢

Amit

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

    通常、我们强烈建议用户不要在软件中断(SWI)中使用 UART -这会导致许多问题、包括应用程序崩溃。 此外、同样、我们建议尽可能缩短例程时间、同样、UART 传输速度也不是最快的。

    我建议您使用消息传递系统通知应用程序任务要打印到 UART。 例如、使用事件或信标来唤醒应用程序、使用队列来存储希望 UART 打印的内容。

    希望这对您有所帮助、

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

    现在、我正在使用一个已排队的事件、multi_role_processAppMsg 会调用另一个进程函数、该函数会调用一些其他函数、该函数会将所有显示内容打印到 UART 中。
    即使这样、当我进行多个显示打印时、程序也会崩溃。

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

    Amit、您好!

    您是否可以发布更改?

    此致、

    反叛分子

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

    你好,Rebel

    以下是更改:

    toggleRedLed()如上所示。

    另一个问题:

    我构建了一个名为 Msg_service 的服务、其中包含3个整数、可使用 BLE 进行访问。 这样、我就可以在不同的多角色和电话之间发送消息。

    现在、它只需要在每次值发生变化时切换 LED、我也希望它打印数据(这就是我需要显示打印的原因)

    您是否会推荐其他方法来实现它?

    谢谢

    Amit

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

    Amit、您好!

    这似乎还可以! 如果有任何问题、我可能会使用 GATT 服务的 Get 参数函数、并通过处理器 MsgValueChangeEvt 中的 UART 将其打印出来。

    当您实施 UART 代码时、您该怎么做?

    我可以告诉处理器 MsgValueChangeEvt 是在应用程序环境中执行的-这正是您想要的位置。 (因为它是在多角色应用程序任务的 taskFxn 循环中处理的)

    此致、

    反叛分子

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

    嗨、Rebel、

    我已经这样做了:

    如果我使用多个显示打印,它将折叠。

    这话什么意思?我如何实现 UART 代码?

    将这些值从一个多角色发送到另一个多角色的最简单方法是什么?

    谢谢

    Amit

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

    有人吗?