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.

[参考译文] MSP430FR2676:如何使用外部32.768kHz 晶体在115200下提高 eUSCI 波特率精度?

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1106920/msp430fr2676-how-to-use-external-32-768khz-crystal-to-improve-eusci-baud-accuracy-at-115200

器件型号:MSP430FR2676
主题中讨论的其他器件:CAPTIVATE-FR2676MSP430WARE

我使用的是 CAPTIVATE-FR2676开发板、该开发板具有外部32.768kHz 晶体)、并遵循 MSP430ware 代码示例`M FR430FR267x_MSP430FR247x_Code_examples/C/msp430fr267x_euscia0_UART_01.c`。  我需要使其以115200波特运行。  我看到的问题是、当给定的字节(例如 0xAA)从我的终端应用程序(RealTerm)发送、它看起来会被一位(例如 0xD5)当从 UCA0RXBUF 中读取时。  如 TI 的代码示例中所示、以较低的9600波特率运行时不会出现此问题。

使用 TI 网站上的 MSP430 USCI/EUSCI UART 波特率计算工具、我修改了波特率设置、如下所示。  ( 可能波特率设置 不正确?)

  UCA0BR0 = 4;                              // 8000000/16/115200
  UCA0BR1 = 0x00;
  UCA0MCTLW = 0x5550 | UCOS16;

我需要使用 MSP430进行此操作已经有很多年了、但我的回忆是、有一种方法可以根据32.768kHz 晶体校准 DCO 或 UART 时钟、以获得更精确的波特率。  是否有一个代码示例展示了如何执行此操作?