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.

[参考译文] TMS320F28386S:需要 UART 示例-接收乱码。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1199796/tms320f28386s-need-a-uart-example---receive-is-garbled

器件型号:TMS320F28386S

我一直在使用 SCI A、我的项目崩溃。 因为这样我就无法使它正确接收字符。 我的另一个使用 SCI A 的项目工作正常。

如果你知道一个极简示例、我可以在测试基础上使用、我将不胜感激。

谢谢、

John

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

    由于接收不正确、我决定让器件发送并在示波器上查看。 数据以9600波特传输到器件。 我测量了一个位宽、它是104us、非常完美。 但是、器件向外发送的数据的位宽为166us。 因此、在某个地方、时钟控制似乎是错误的、但我找不到它。

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

    尊敬的 John:

    您能否为器件提供 LSPCLK 值? 这将在项目的 device.c 和 device.h 文件中定义。 LSPCLK 的值可能与波特率函数所期望的值不同。 LSPCLK 是 F2838x 上 SCI 的时钟源。

    此致、

    Vince

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

    您好、Vince、感谢您发帖。

    在可能已选取定义的所有位置、定义为:

      #define DEVICE_LSPCLK_FREQ         (DEVICE_SYSCLK_FREQ / 4)

    我的时钟晶体为25MHz。

    我痛苦地走过 Device_init(),插入了许多赋值语句,这样我就可以在一个正在运行的项目和中断的项目中看到宏 def 值。 如 DEVICE_setClock_CFG 的化合物定义会造成混乱。

    在我的其中一个工作项目上、DEVICE_LSPCLK_FREQ 似乎为0x02FAF080 (50 000 000d)和

    DEVICE_SYSCLK_FREQ 为0x0BEBC200 (200 000 000d)

    中断项目

       DEVICE_setClock_CFG 和 DEVICE_SYSCLK_FREQ 与正在运行的工程有很大不同、并且 DEVICE_LSPCLK_FREQ 源自 DEVICE_SYSCLK_FREQ、因此也会进行主机控制。

    在 Device_init()中,当我在 行中突出显示 DEVICE_SYSCLK_FREQ 和 Open 声明时:

     assert (SYSCTL_getClock (DEVICE_OSCSRC_FREQ)== DEVICE_SYSCLK_FREQ);

    我有3个工作地点。 使用搜索工具"一切"、我看到多个文件中提供了许多宏 defs、因此我猜构建工具首先会设置值。 当我尝试重命名该项目时、许多事情都发生了损坏。 我计划查看文件、链接资源和"包含选项"中的"包括"、以查看是否可以确定问题所在。

    如果你有一个好的搜索和毁灭的方法,我就会耳朵。

    再次感谢、

    John

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

    尊敬的 John:

    很遗憾、我没有任何好的搜索和销毁方法、抱歉。

    如果您跟踪每个位置、但仍然有问题、我会说 CCS 项目设置中还有一个可以为这些位置定义的位置。

    Project->Properties

    Build->C2000 Compiler-->预定义符号

    该位置可以定义一些可能影响此效果的符号、具体取决于在以前的项目中执行的操作。

    此外:

    Build->C2000 Compiler->Include Options

    可能指向其他位置的示例。

    此致、

    Vince

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

    好想法。

    我可能会再次查看包含选项、尽管它们以前有效。 我想我将对相关工作项目进行快照、并确保有问题的项目具有相同的顺序。

    谢谢、祝您周五愉快(本周只能再工作两天!)、

    John