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.

[参考译文] TM4C1231E6PM:UART0通信问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/589054/tm4c1231e6pm-uart0-communication-problem

器件型号:TM4C1231E6PM

大家好、

我使用的是 tm4c1231e下午6点的 UART-0。 当我开始通过 UART 传输数据(约1024字节)时,在中间,我从 UART 获得“Receive_Timeout_Interrupt ()”,即使没有数据从外部传输到 UART。

我注意到接收到的数据字节是我发送到 UART 的数据字节。 对于使用 UART-0是否有任何特殊的建议设置(Hardwrae/软件方面的设置)?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    URVI、
    首先、如果不打算使用 UART 接收、则可能不应启用 Tx 超时中断。
    接下来、在 U0RX 上接收到的内容有两种可能的原因:
    您是否已将硬件配置为内部回送(发送到 U0TX 的信号复制到 RX 线路中)-有一个控制此设置的 TivaWare 函数,称为 UARTLoopbackEnable();
    或者您在 MCU IC 外部存在硬件干扰。
    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 URVI、
    我想在 Bruno 的基础上添加一些意见。 接收到的超时意味着接收 FIFO 不为空、并且在定时器超时之前不会再接收到数据。 这意味着、FIFO 中存在一些数据、这些数据在计时器超时之前不会被 CPU 读取。 尽管您不传输任何内容、但接收 FIFO 中的未读数据会触发接收超时中断。 可以将该机制视为提醒 CPU 仍有未读数据。 根据 Bruno 的建议、您需要启用接收超时中断才能生成超时中断。 如果您接收的数据与传输的数据相同、则很可能启用了内部回送。 另请检查电路板布线、您是否将 TX 和 RX 引脚环回在一起。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Charles Tsaaa"]将该机制视为提醒 CPU 仍有未读数据。

    Charles、我实际上看不到接收超时(RT)中断。

    RT 解决的问题是、当 RX 触发器被设置为大于刚刚到达的字节数时、避免丢失/忽略接收的最后几个字节。

    有一个更数字的解释:您可以将 RX 设置为在 FIFO 缓冲区的50%处触发、因此只有当8个字节进入时、它才会干扰程序执行。 如果消息的最后一部分只包含3个字节、RX 将不会触发、直到后来(如果有)再接收5个字节。 因此、如果 UART 引擎在最后一个字节之后保持"一段时间"而不接收任何内容、则会触发 RT、并且 ISR 仍可以处理其中的任何内容。 其中一个文档对"某个时间"进行了解释、但显然比在配置的 UART 速度下新字节进入所需的时钟数量多了一点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bruno、
    我同意你的意见。 也许我对我的写作不太清楚。 如果我将其表述为“将该机制视为提醒 CPU,仍有未读数据低于已编程的 FIFO 阈值,且该阈值已过期计时器”,那就更好了。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这句话很长!
    不用担心-我只是想分享经验... 事实是、一段时间以来、我没有理解 RT 中断的原因进入"我的 carreer"、只是在我开始处理更复杂的 UART 缓冲区和 DMA 时才发现这一点。 在此之前、它只是 RX/RT 参数的标准副本/粘贴、因为它们似乎起作用!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Charles Tsaa"]我同意您的意见。[/引用]

    哦,我的——论坛记分板现在是否显示:“盲松鼠2—专家0?”   (当然,这位记者(还有)——很有资格——做一只松鼠——和盲人!)

    通常、最佳的"防御/响应"就是简单的"你是对的!"   非常感谢你们-查尔斯!

    我们注意到(有些)这里-通常会-"扭曲/转向/扭曲"-任何东西(相反-但通常是正确的)会抵制他人的观点...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当有人对时、我并不觉得很难同意他的观点。 :-)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是一个很好的品质-反映了很好的特点...