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.

[参考译文] TMS320F28P650DH:UART 代码示例无法正常工作

Guru**** 2689775 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1591784/tms320f28p650dh-uart-code-example-not-working-properly

器件型号: TMS320F28P650DH
主题: C2000WARE 中讨论的其他器件

尊敬的同事:

当从“C2000Ware_6_00_00_00\driverlib\f28p65x\examples\c28x\uart\"导“导入 UART 示例时、它无法正常工作。 发生的情况是代码未正确配置 UART 外设。  

只要我一步的代码,并到达在 board.c 中生成的块:

void myUART0_init(){
        //
        // Set myUART0 baud rate and configuration
        //
        UART_setConfig(
            myUART0_BASE, // base address
            200000000, // UART source clock
            115200, // baud rate
            (UART_CONFIG_WLEN_8 | // word length
             UART_CONFIG_STOP_ONE) // stop bits
        );

调试器跳转到 uart.c 中的一个奇怪位置、并开始几乎一步一步地浏览注释部分。 目标/二进制文件之间显然存在着脱节的现象。  

要解决该问题、我需要从编译中排除 driverlib.lib 并在编译中包含器件/driverlib。 则它会正常工作。

因此、我认为提供的 driverlib.lib 没有正确编译、此问题应该修复。  

 

要重复此操作:

导入 P65x 的 uart_ex1_echoback.projectspec“工程并运行它。 它将无法正常工作 (FIFO 将由启用、字大小将为 11。

此致、  

Jiri Panacek, ISC.

 

对于 E2E 管理员:这个新的联系窗口是可怕的,文本窗口甚至不能调整大小  

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

    尊敬的 Jiri:

    该专家目前已离职、将在本周返回时立即联系您。 请期待回复延迟、谢谢。

    此致、

    Aishwarya

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

    尊敬的 Jiri:

    对长时间的延误表示歉意。 您看到的是由编译器优化引起的。 driverlib.lib 文件在编译时启用了优化、因此某些 C 行已“优化“。 在编程的代码优化时、CCS 无法将编程到器件中的符号与您逐步浏览的 C 文件正确匹配。 尽管看起来您正在逐步浏览注释、但这实际上只是优化的代码。 若要逐步执行 driverlib 代码、使 CCS 能够理解编译器优化,必须关闭它 — 正如您通过包含 device/driverlib 文件夹所做的那样。

    如有必要、请支持此回答。

    谢谢、

    Delaney

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

    尊敬的 Delaney、Aishwarya:  

    感谢您的意见。 无需担心答案太晚。  我们正慢慢接近 年底。 我知道压力。 Slight smileμ s

    我提到了两个问题:

    1.调试不起作用,因为代码会逐步完成注释部分

    2.代码无法正常使用(寄存器设置不正确)

    ####问题 1-已解决

    我明白 driverlib 是通过优化编译的、我也理解了逐步执行代码时的问题。

    ####问题 2-代码无法正常工作

    但是、 我仍然认为该演示应该开箱即用。 当我按原样从 C2000Ware 导入工程时、工程不起作用、需要重新编译库才能使其正常工作。 我要求我的实习生也这样做,他也面临同样的问题。

     此致、  

    Jiri、Systems & Apps、ISC

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

    尊敬的 Jiri:

    对于问题 2、在逐步完成 Board_init () 中的初始化后、需要检查一下是否看到不正确的寄存器值:能否确保在寄存器视图中打开“Continuous Refresh“? 如果您已启用此功能、并且在分步执行初始化后仍然看到不正确的值、请发送以下屏幕截图:哪些寄存器不正确以及预期值是什么。

    此致、

    Delaney