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.

[参考译文] TM4C129XNCZAD:Uartsend 不工作

Guru**** 2404245 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1001745/tm4c129xnczad-uartsend-not-working

器件型号:TM4C129XNCZAD

尊敬的先生:

我们使用 Keil amd TM4C129Xcnzad 及其精细开发了该项目。

现在、我要将整个项目迁移到 CCS。

我已从 docklight (串行端口终端实用程序)发送命令、并希望查询响应以下内容。

当我保持调试点时、我将获得响应 THV2.59、在这里删除断点、然后不从查询中获得任何响应。

波特率为9600。

在 Keil 编译器中工作的同一项目。

void send_version_HWACK (void)

PC_buff [0]='D';
PC_buff [1]='H';
PC_buff [2]='V';
PC_buff [3]='0';
PC_buff [4]='2';
PC_buff [5]。';
PC_buff [6]='5';
PC_buff [7]='9';
PC_buff [8]='\r\n';


对于(i=0;i<9;i++)

UARTSend (&PC_buff [i]、1);
对于(x=0;x<=20000;x++);


时序或延迟是否有问题?

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

    您好 Rajesh、

    我建议您从我们的 TivaWare 示例中的一个示例开始、例如  hello、并使用我们提供的 uartstdio 实用程序来处理此问题。 它确实简化了 UART 过程、您只需一个 API 即可发送数据、例如 UARTprintf ("DHV2.59\r");

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

    尊敬的 Ralph  

    我知道 UARTPrint、但当数据较大时、它不起作用。

    上面的程序在 Keil 编译代码中工作、而在 CCS 编译代码中不工作。通过优化、它还会开始运行 CCS。

    我发现问题是上面提到的"针对环路延迟"。  我已经关闭了优化、速度5、然后它开始工作。

    您是否可以建议使用系统延迟环路 ?

    基本上、在 CCS 中 、如何在优化中处理"对于环路延迟"。  

    请建议系统延迟   

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

    您好 Rajesh、

    不要使用延迟、而是检查 UART 是否与事务一起完成:

        //
        // Wait for the UART module to complete transmitting.
        //
        while(UARTBusy(UART0_BASE))
        {
        }

    我没有看到您正在使用哪种 UART、因此我 对上面的代码使用了默认 UART0_BASE、但如果 UART0_BASE 不同、您需要将其更改为您正在使用的 UART。

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

    尊敬的 Ralph:

    好的、我将检查 UARTBusy。

    Code Composer Studio:版本:7.0.0.00042  

    同时、您能用 浮点值帮助我实现这一点吗

    #hardware_VER 2.64

    sprintf (pcBuffer、"硬件版本:%0.2f"、hardware_VER);
    GrStringDraw (&sContext_Label、pcBuffer、-1,40、115、0);

    执行 Grstring Draw 后,出现错误“ No source available for 0x41Dffe”

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

    在 TI 示例中、grlib 作为库链接、因此 GrStringDraw 函数的源代码不可用。

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

    您好 Rajesh、

    如 Andy 所说、此函数位于库中。

    您只需将 grlib/string.c 文件添加到您的项目中、即可单步执行该操作。 请参阅我们的入门指南第14页上的步骤、了解如何将.c 文件添加到您的项目: https://www.ti.com/lit/pdf/spmu373