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.

[参考译文] CC1312R:cc1312r 在 CCS 屏幕上显示 UART

Guru**** 2473270 points
Other Parts Discussed in Thread: CC1312R

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1374343/cc1312r-cc1312r-getting-uart-onto-ccs-screen

器件型号:CC1312R

工具与软件:

抱歉、CCS / 1312上有新内容

XDS 似乎在 LAUNCHXL 板上收听 UART。 如何打开显示的控制台

无线电在其 UART 上写入什么? 我在调试时测试菜单等。

Gullik

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

    尊敬的 Gullik:

    要使用 CCS UART 终端:

    _单击"Window"->"Show View"->"Other"->"Terminal"

    _单击新终端、然后选择"串行终端"


    _您现在应该看到您的终端

    此致、

    Arthur

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

    感谢您的响应、Arthur、

    我这么做、但是屏幕上什么也没有显示。

    我将使用 UART Bridge 示例、它会打开 UART 0、然后打印一条消息

    我认为第一个 UART 引脚 TXD 和 RXD 对应于 UART 0、即 JTAG 部分

    会将其发送到 CCS 中的控制台。

    令人困惑的古利克

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

    尊敬的 Gullik:

    您是否选择了正确的 COM 端口? 应为 XDS110类应用/用户 UART。

    在下面的屏幕截图中、我展示了 rfUARTBridge 示例项目在两块板上运行、每块板都有自己的终端窗口并交换数据:

    此致、

    Arthur

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

    谢谢 Arthur、

    我运行 Linux、但在插入 XDS 时有两个端口、ttyACM0和 ttyACM1。

    更新:在调试时、ttyACM0连接到 UART 0、因此运行 minicom 时显示 OK。 UART 1我已连接到 USB 软件狗、因此该软件狗也可以正常运行、但无法将控制台连接到

    进行重新编程。 不管怎样、我的问题部分解决了。

    我运行 no-RTOS、(目前) stdio.h 和 stdin / stout 呢? 是否到位、所以标准程序序言

    充电站?

    Gullik

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

    尊敬的 Gullik:

    在这种情况下、/dev/ttyAC0是您必须使用的端口。

    此致、

    Arthur

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

    器件型号:CC1312R

    工具与软件:

    我似乎不能让 UART 1正常工作。 请帮助我理解我做错了什么。


    我将使用 rfUARTBridge_CC1312R1_LAUNCHXL_nortos_gcc 示例来测试我的代码。
    我已经运行了 syscfg 并添加了一个 UART、它使用引脚 DIO12/19和 DIO1/30来实现 TX 和 RX。
    (引脚12/19的含义是什么、我使用的是12、1/30、我使用的是1?)

    < UART2_Handle uart1;      //添加 UART
    < UART2_Params uartParam1;
    < unsigned char cc;
    < static char        cmdline[MAX_LENGTH];//添加了一个缓冲区

    < volatile size_t cmdbytes;   //如果我有一些、则需要测试的计数

    与 UART2 UART 类似、我为 UART1添加了回调

    <静态 void ReceiveonUARTcallback1 (UART2_Handle handle、void *buffer、size_t count、void *userArg、int_fast16_t status);

    其设置与 UART 类似

        </*用回调读取模式 GW */初始化 UART1
    <    UART2_Params_init (&uartParams1);
    <    uartParams.baudrate = 115200;
    <    uartParams.readMode = UART2_Mode_callback;
    <    uartParams.readCallback = ReceiveonUARTcallback1;
    <    uartParams.readReturnMode = UART2_ReadReturnMode_partial;

    我可以在 uart1上打印一条消息、它正确地在终端上显示

    <    uart1 = UART2_open (CONFIG_UART2_1、&uartParams1);
    <    const char       startMsg1[]="\r\Nrf-UART-1 bridge-started:\r\n";
    <    UART2_write (uart1、startMsg1、sizeof (startMsg1)、NULL);

    然后发出 Read、类似于 uart1上的 UART

    <    status = UART2_read (uart1、&cmdline、1、NULL);   //发出开始读取

    用于检查 uart1的内容并对字符进行回显的代码片段

    <        } else {
    <            if (cmdbytes != 0){
    <                UART2_write (uart1、&cmdline、1、NULL);   //回显我得到的内容
    <                cmdbytes = 0;
    <                UART2_read (uart1、&cmdline、1、NULL);   //重新发出读取
    <            }
    <}

    最后是回调
    < void ReceiveonUARTcallback1 (UART2_Handle handle、void *buffer、size_t count、void *userArg、int_fast16_t status)
    <{
    <    if (status == UART2_STATUS_SUCCESS){
    <        cmdbytes = count;   //just incr cmdbytes 为了显示我们获得了个字符(s)、请参阅上面的代码片段
    <    }
    <    else{
    <        while (1){}
    <    }

    如果我对这个回调设置中断、则永远不会发生、会执行 UART 回调、并且我回显(用于测试)我在终端上写入的内容。
    但,*相同*?? uart1代码不起作用。 困惑…

    Gullik


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

    此外、在 UART 端口中注入字符时、回调会一次进入 uart1回调。

    是所有 UART 通用的回调、我应该通过对它们进行区分

    句柄参数、或者每个 UART 是否应该有自己的回调(正如我所做的那样)?

    甚至更加困惑

    更新了:还有一个奇怪、我第一次点击 uart1读取时、如果我在读取后休息一下、

    程序在读取时挂起、我输入一个字符、它命中中断、并且我可以看到 cmdline[0]包含

    那个字符。 回调函数不是 非阻塞函数? 第一个读数为什么会挂起?

    (至少我已经能够消除 HW、因为该字符位于 cmdline[0]!!中)

    但读取挂起、并且从不执行回调。

    最新动态:

    我的错误:initParams 行后设置的参数引用了错误的参数列表。

    纠正后、立即按预期开始工作。

    对不起所有无用的文本....

    Gullik