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/CC3220SF-LAUNCHXL:使用多个 UART 显示屏时出现问题

Guru**** 2589275 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/941756/ccs-cc3220sf-launchxl-problems-while-using-multiple-uart-displays

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

工具/软件:Code Composer Studio

我使用 syscfg 来生成 ti_driver_config 文件。 我添加了2个显示屏。 但是、当我在编译后生成.c 和.h 文件时、文件不会正确生成。

在2中、一个使用 XDS UART0、另一个使用连接到引脚58和59的 UART1。 但 Display_config 结构使用 UART1来设置两个显示。 我无法手动编辑该文件、因为它在每次构建后都会重写。

我正在使用 Display_config 结构中的索引号来打开显示、因为两者都是相同的类型。 您可以看到我的 empty.c 文件以进行相同的查看。 由于上述问题、UART1显示屏无法打开

我已附加相应的文件、以便您可以模拟所面临的问题。  

e2e.ti.com/.../ti_5F00_drivers_5F00_config.ce2e.ti.com/.../ti_5F00_drivers_5F00_config.ce2e.ti.com/.../ti_5F00_drivers_5F00_config.h

e2e.ti.com/.../empty.c

显示屏和相应 UART 的编号也会混乱。

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

    您好、Rejin、

    您是正确的、我看到了相同的行为。 看起来 Display 驱动程序配置当前未设置为支持2个 UART 实例。

    不过、我可能有权变措施。 我已经验证了使用此变通办法可以创建2个有效的 UART 显示句柄、但我现在没有用于测试完整功能的设置。 您能告诉我这是否适合您吗?

    1. 使用 SysConfig 完成其余的项目配置、并构建项目以照常生成配置源代码。
    2. 将文件夹 Debug/syscfg 中的.c 和.h 复制并粘贴到项目的主要部分。 左键单击.syscfg 文件以从构建中排除(现在您可以手动编辑配置文件而不被覆盖)。
    3. 添加以下代码:

    将 ti_drivers_config.c 的 Display 部分替换为:

    /*
    ======================================== Display =================================================
    */
    
    #include 
    #include 
    
    #define CONFIG_Display_COUNT 2
    
    #define Display_UARTBUFFERSIZE 1024
    静态字符显示 UARTBuffer0[Display_UARTBUFFERSIZE];
    静态字符显示 UARTBuffer1[Display_UARTBUFFERSIZE];
    
    DisplayUART_Object displayUART0;
    DisplayUART_Object AttratObject1;
    
    {DisplayUart_HW0 = DisplayUarttrarts
    uartIdx = CONFIG_UART_0、
    波特率 = 115200、
    .mutexTimeout =(unsigned int)(-1)、
    strBuf = displayUARTBuffer0、
    strBufLen = Display_UARTBUFFERSIZE
    };
    
    const DisplayUart_HWAttrs displayUartHWAttr1 ={
    uartIdx = CONFIG_UART_1、
    波特率 = 115200、
    .mutexTimeout =(unsigned int)(-1)、
    strBuf = displayUARTBuffer1、
    strBufLen = Display_UARTBUFFERSIZE
    };
    
    const Display_Config Display_config[CONFIG_Display_COUNT]={
    /* CONFIG_Display_0 */
    {
    .fxnTablePtr =&DisplayUartAnsi_fxnTable、
    .object =显示 UartObject0 (&D)、
    hwAttrs =&displayUartHWAttrs0
    }、
    /* CONFIG_Display_1 */
    {
    .fxnTablePtr =&DisplayUartMin_fxnTable、
    .object =显示 UartObject1 (&D)、
    hwAttrs =显示 UartHWAttrs1 (&D)
    }、
    };
    
    const uint_least8_t Display_count = CONFIG_Display_count; 

    然后将以下内容添加到 ti_drivers_config.h 中:

    #define CONFIG_Display_0
    #define CONFIG_Display_1 1. 

    现在、您应该能够使用 Display_open (CONFIG_DISPLAY_0、...) 和 Display_open (CONFIG_Display_1、...)。

    此致、

    Sarah