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:CCS - LaunchXL-CC2650:多角色和 LED

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

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/593629/ccs-launchxl-cc2650-ccs---launchxl-cc2650-multi-role-and-led

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

工具/软件:Code Composer Studio

你好

我使用的是 LaunchPad XL CC2650板。 我将使用 Multi_Role 项目作为另一个项目的起点。

我正在尝试使用 LED、因此我使用的代码与 Project 0中的代码类似。

当我在 main.c 中编写此代码时、它可以正常工作、并且 LED 亮起:

但是、我无法在我的代码所在的 multi_role.c 中使用 LED。

当我将此代码放在 multi_role.c 中并尝试在 multi_role_init()中执行 PIN_open 时,器件会卡住。

问题可能出在哪呢?

谢谢

Amit

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    将代码移动到 multi_role.c 时、是否记得从 main.c 中删除同一段代码?

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

    嗨、Christin

    当然、我从 main.c 中删除了代码
    实际上、我将代码放在 multi_role.c 的开头(这是我需要的地方)、但它不起作用、所以我将其移动到 main.c、只是为了检查它是否起作用。 但它最终必须位于 multi_role.c 中。

    我无法检查句柄、因为(及其奇怪的)当我添加 PIN_OPEN 行时、调试器甚至无法到达该行。 我不知道为什么会发生这种情况。

    有什么想法吗?

    Amit

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否能够调试开箱即用的多角色项目? 您的编译器版本是什么?
    请注意、在运行 CC2650多角色项目时、不应使用最新的编译器版本。(应使用 ARM 5.2.x)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Christin:

    我使用 ARM 5.2.8。
    当我调试(运行)原始多角色项目时、它工作正常。
    当我在 main()中执行 PIN_OPEN (&ledPinState、ledPinTable),并且所有相关代码都位于 main.c 中时,它的工作正常。
    当我在 multi_role_init ()中使用 multi_role.c 中的所有相关代码执行 PIN_open (&ledPinState、ledPinTable)时、调试器会卡住、并且控制台中没有任何内容(程序不会运行、也不会输出)。

    Amit
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    调试器卡在哪里? 您能否实现异常处理?
    如果可能、您还可以将 PINCC26XX.c 拖放到项目中并单步执行 PIN_OPEN 吗?
    我无法再现您看到的内容。 (在 multi-role.c 中使用引脚驱动程序没有问题)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Christin

    它非常奇怪:

    我在 PIN_open 和前面的行中将断点放置在 multi_role_init()中,您可以看到:

    当我运行它时,调试器卡在 main() BIOS_start()中,甚至不能到达 multi_role_init()。

    当我在注释中添加 PIN_OPEN 行时、调试器进入断点并正常工作。

    我曾尝试 将 PINCC26XX.c 拖动到项目中、但遇到错误(可能是重复)。

    1.正如我以前说过的,当我尝试从 main()中打开 PIN_open 时,它会起作用。 我猜 main.c 和 multi_role.c 指的是不同的 PIN_open 函数。 应调用哪个 PIN_OPEN 函数、如何使其调用正确的函数?

    在项目0中、我认为它调用 PIN.h 文件中的 PIN_OPEN 函数。 那么、我该怎么做呢?

    2.如果您成功打开 multi_role.c 中的 LED 引脚并打开 LED、请告诉我您到底做了什么。 也许我们有不同的 Multi_Role 项目?

    谢谢

    Amit

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

    您能否尝试以下操作:

    1)在 main()中
    添加 PIN_init (BoardGpioInitTable);

    2) 2) multi_role.c
    添加 ledPinTable 定义
    添加了 PINHandle 和 PINState 定义

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

    正是我所做的。 它会卡住、我无法判断它在哪里。 这就是我需要你帮助的原因。

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

    嗨、Marie、

    我发现了一些奇怪的东西:如果我在 ledPinTable 中只放置一个 LED (无论哪个 LED 都是如此)、它就能正常工作。
    但是、如果我在表中同时保留 Board_LED0行和 Board_LED1行、它会卡住。

    编辑:

    现在更奇怪的是:这是电流表:

    静态 PIN_Config ledPinTable0[]={
    BOARD_LED0 | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、
    // Board_LED1 | PIN_GPIO_OUTP_EN | PIN_GPIO_LOW | PIN_PushPull | PIN_DRVSTR_MAX、
    PIN_TERMINATE
    };

    当我在 multi_role_handleKeys()内的程序中设置输出值 时,出于某种原因,我可以将两个 LED 都设置为打开:

    ledState0 = 1 - ledState0;
    ledState1 = 1 - ledState1;

    PIN_setOutputValue (ledPinHandle0、Board_LED0、ledState0);
    PIN_setOutputValue (ledPinHandle1、Board_LED1、ledState1);

    但据称我只打开 LED0、而不打开 LED1。 这怎么可能呢? 您能告诉我代码有什么问题吗?


    谢谢
    Amit

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

    我看到的情况与您相同。 我将更仔细地研究它、然后再返回给您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Amit、您好!

    是否可以尝试将编译器更改为 TI ARM 编译器16.9.x?

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

    我已将编译器更改为 TI ARM 16.9.1、但它与上述相同。 没有区别。

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

    这很奇怪。 您使用的是哪个版本的 CCS?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用的是 CCS 版本6.2.0.00046

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

    使用 TI ARM 编译器 v.5.2.6、我能够再现您的问题。

    当切换到 TI ARM 编译器16.9.1时、我能够将 LED 引脚添加到 multi_role 而不会出现任何问题。

    我正在使用 CCS 版本:6.2.0.00050、BLE 栈2.2.1和 ble_examples-ble_examples-2.2中的 multi_role。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何更新 CCS 版本? 我在程序中进行了更新、但它没有更改版本、仍然是6.2.0.00046
    我找不到 ble_example-2.2。 不知道我的计算机上有什么版本。 我拥有的所有链接(到 GitHub?) 不起作用。 为什么必须如此难于找到文件、为什么您在 TI 网站上没有这些文件? 如果链接正常、我会不胜感激。

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

    您好!

    ble_example-2.2的链接如下:

    在 CCS 中、您可以通过转至以下路径来更改编译器版本:

    Project -> Properties -> General -> Main -> Compiler Version

    祝你一切顺利

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

    您可以通过按 Help 和 Check for Updates 来更新 CCS。