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.

[参考译文] MSP430F5438A:UART 问题

Guru**** 2587365 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/817712/msp430f5438a-uart-problem

器件型号:MSP430F5438A

您好,团队

我有几个串行端口问题:
当 GIE 被关闭时、一个中断发生。 当 GIE 被重新启用时、中断是被响应还是丢失?
2.我同时使用四个串行端口。 为了确保通信质量、我如何在代码级别管理它们?
当 BRCLK = 4MHz 且 baid = 9600bps 时、如何计算这些参数? 根据手册、我只能计算 N、我不知道如何处理小数部分。
param.clockPrescalar =?;
param.firstModReg =?;
param.secondModReg =?;
param.oversaming =?; 

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

    你(们)好

    一旦 GIE 被启用、被置位的相应 IFG 将触发一个中断、只要它在 UART 模块内被启用。

    2、您的意思是如何在代码级别管理它们 USCIa 的每个 UART (A0、A1、A2和 A3)都有自己的寄存器、您需要配置这些寄存器。 请参阅数据表第63页。 每个 UART 都有自己的 IFG、可以触发不相关的中断。 此外、每个 USCIA 模块还分配了自己的中断向量。 (请参阅数据表第44页)。 这就是您管理4个不同 UART 模块和通信通道的方式。

    第953页的用户指南中有一些表格、为您提供 UART 的专用时钟和波特率设置。

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

    您好,

    以上问题已解决。 由于我使用了四个 UART、因此数据溢出的可能性会增加、这对我来说是非常重要的。 我们的手册中提到了这一点、但我不理解。 您能用代码解释一下吗?

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

    您好!

    我认为这显然是不可避免的、所以您需要做的就是

    1.进入 UART ISR 后读取 UCAxSTAT 寄存器

    2、分析 UCAxSTAT 相对于位#5 (UCOE)溢出标志的情况。

    3.如果 UCOE = 1、则处理故障

    4、读取 UCAxRXBUF 来清零所有标志

    5.为了确保在步骤3和4之间接收到一个额外的字节、再次读取 UCAxSTAT 并再次检查位#5 (UCOE)溢出标志

    6.如果置位、则在 ISR 未完成时进行相应处理

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

    您好!

    如果问题已解决、请按 Resolved 按钮关闭此主题。 如果对此主题有开放式问题、请告知我们。

    当然、您还可以打开一个新的线程、以防您想了解其他内容。