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.

[参考译文] LAUNCHXL-CC26X2R1:使用 CCS 且使用 UART 的 TFMini Plus

Guru**** 2342480 points
Other Parts Discussed in Thread: ENERGIA, SYSCONFIG, CC2652R7
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1288872/launchxl-cc26x2r1-tfmini-plus-using-uart-using-ccs

器件型号:LAUNCHXL-CC26X2R1
主题中讨论的其他器件:TM4C123ENERGIASysConfigCC2652R7

您好!

我正在使用 CC26X2R1-LAUNCHXL 和激光雷达器件(TFMini Plus:[技术文档])。

我已经有一个程序可以在两个 TI -具有 TM4C123电路板的 TivaC (在 Arduino 2.0 IDE 上编译)上正常工作、但我遇到了使用 RX/TX 引脚将 TFMini 连接到电路板的困难。 我没有找到有关此问题的更多信息、或者由于 Code Composer Studio (CCS)要求、我可能无法完全理解它、因为我必须使用 CCS、因为 Energia/Arduino IDE 不支持我的板。

我发现唯一可能对我有帮助的线程是这个:[该线程]、但我仍在努力掌握 CCS 的所有配置要求。

如果您可以提供有关使用 CCS 配置 TFMini Plus 的任何指导或说明、或建议替代资源、我会非常感激。 我期待着将激光雷达器件与 CC26X2R1-LAUNCHXL 平台成功集成。

提前感谢您的帮助。

(如果你有任何我能理解的工作项目/代码、那将会令人惊叹)

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

    您好,Kylian Maillard,

    希望你好。 有关如何将 UART 与 CC26X2R1器件配合使用的更多信息、请参阅:  

    SDK 中的 UART echo 示例: https://dev.ti.com/tirex/explore/node?node=A__AJ0rCcugoJRKwGj-BDBgvA__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST

    POSIX (还显示了如何使用/配置 UART) SimpleLink Academy (SLA): POSIX Project Zero—CC13XX CC26XX SimpleLink Academy (TI.com)

    确保在 SysConfig 中正确配置 UART、并参考 PinMux TX/RX 引脚设置为什么(SysConfig UART 中的下拉菜单)。

    谢谢
    A·F

     

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

    您好!

    感谢您提供示例!

    在您的帮助下,我能够使用 UART_WRITE (),尽管我承认我不能100%理解 UART_WRITE ()/ UART_READ()内的&bytesRead /&bytesWritten 参数我继续使用我发现的唯一使用 CC26**和 TFMini Plus 的例子(虽然我怀疑它可能是不完整的;它可以 在 GitHub 上找到)。 我的目标是、已知 UART0通过 USB 连接到 PC、因此能够促进调试并通过 UART1访问激光雷达提供的实时数据。 在 GCC 编译器中使用 printf ()或 puts ()时遇到了问题、因此我更改了 TI-clang

    不过、当我运行以下代码片段时:

    来源:

    while (1) {
        printf("hello ");
    };


    输出:

    [Cortex_M4_0]您好、您好、您好、您好、…… (+100次)


    来源:
    for (int j = 0; j <= 20; j++) {
        printf("hello\n");
    };


    输出: (尽管我要求执行20次、但仅执行5或6次)

    [Cortex_M4_0] hello
    你好
    你好
    你好
    你好
    你好


    来源:
    for (int j = 0; j <= 20; j++) {
        printf("%d:\n", j);
        if (j == 2) printf("VAAA\n");
        if (j == 3) printf("VB\n");
        if (j == 4) printf("VC\n");
    }



    输出:
    [Cortex_M4_0] 0:
    1:
    2:

    3:
    VB


    有时它会显示以下内容:

    [Cortex_M4_0] 0:
    1:
    2:

    3:


    打印大约5行后,程序似乎崩溃。 我还观察到、当我包含`sleep (1);`(来自`μ A) #include <unistd.h `)、程序停止。

    我不确定其他人是否遇到过这一问题,或者它是否具体适用于我的情况。

    提前感谢您提供任何指导。

    京联

    顺便说一下、是否可以在 CCSv12中包含 Energia sketch? 我在 Project 导航栏中找不到用于此目的的特定按钮。

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

    您好, Kylian,

    很高兴听到你有一些功能 工作,要评论 bytesRead UART2.h 文件描述它如下:   

    "bytesRead:如果为非 NULL,则存储实际读入缓冲区的字节数的位置。 如果为 NULL、此参数将被忽略。 在回调模式中、可针对此参数传递 NULL、因为回调函数将传递读取的字节数。 同样、在具有无限带宽的
    可以传递超时、NULL。 但是、如果由于错误而未收到请求的字节数、则应检查状态。
    在非阻塞模式下、不建议为此参数传递 NULL、因为无法确定实际读取的字节数。"

    您能否尝试使用 UART2_WRITE 而不是 printf、并重复相同的测试。 我在 uart2echo 示例中使用以下代码测试了 CC2652R7电路板:

        //uart2echo code above this, code within mainThread, comment out the while loop
        UART2_write(uart, echoPrompt, sizeof(echoPrompt), &bytesWritten);
        for (int j = 0; j <= 20; j++) {
            char message[] = "hello\r\n";
            UART2_write(uart, message, sizeof(message), &bytesWritten);
        }
        for (int j = 0; j <= 20; j++) {
            if (j == 2) { UART2_write(uart, ":VAAA\r\n", 10, &bytesWritten);}
            if (j == 3) { UART2_write(uart, ":VB\r\n", 6, &bytesWritten);}
            if (j == 4) { UART2_write(uart, ":VC\r\n", 6, &bytesWritten);}
            UART2_write(uart, "\r\n", 1, &bytesWritten);
        }

    提供以下图像(在 PuTTY 中):

    这种行为是否与您尝试执行的操作类似? 否则、 如果您希望 以特定方式填充数据、则可以尝试 将 sprintf 放入消息缓冲区、然后将该消息缓冲区传递到 UART2_WRITE。  

    SLEEP 通常不会使程序崩溃、在您执行上述测试/更改后再尝试 SLEEP、如果它再次崩溃、请尝试在睡眠代码之前使用调试和断点。 如果您需要、可以尝试使用"empty..." 项目在您的 SDK 中、此项目切换 LED 并休眠1秒。  

    谢谢。
    A·F