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.

[参考译文] MSP430FR2311:无DCOCTL;如何设置DCO?

Guru**** 2535590 points
Other Parts Discussed in Thread: MSP430FR2311, MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/578698/msp430fr2311-no-dcoctl-how-do-you-set-dco

部件号:MSP430FR2311
主题中讨论的其他部件: MSP430G2553

您好,

我尝试在DCO上实施1 MHz频率,以便使用Argenox教程实现UART (我已将其代码附在底部)。 但它们使用MSP430G2微控制器。 在查看msp430fr2311.h文件和数据表后,我发现它没有DCOCTL寄存器。 我在数据表中发现,为了获得1 MHz的DCO,可以设置以下内容:

在头文件中查找了其中的几个后,我发现它们位于CSCTL1寄存器中。  

我的问题是如何设置CSCTL1寄存器以获得1 MHz频率。 我在数据表中找不到寄存器的布局,也不知道哪个位对应什么。

Argenox代码:

#include <MSP430-h>

int main (void)
{
WDTCTL = WDTPW + WDTHOLD;//停止WDT

/*使用1MHz时钟DCO的校准值*/
DCOCTL = 0;
BCSCTL1 = CALC1_1MHz;
DCOCTL = CALDCO_1MHz;

/*配置Pin Muxing WFP 1.1 RXD和WFP 1.2 TXD*/
P1SEL = BIT1 | BIT2;
P1SEL2 = BIT1 | BIT2;

/*将UCA0置于"重置"中以进行配置*/
UCA0CTL1 = UCSWRST;

/*配置*/
UCA0CTL1 |= UCSSEL_2;// SMCLK
UCA0BR0 = 104;// 1MHz 9600
UCA0BR1 = 0;// 1MHz 9600
UCA0MCTL = UCBRS0;//调制UCBRSx = 1

/*使UCA0退出复位*/
UCA0CTL1 &=~UCSWRST;

/*启用USI_A0 RX中断*/
IE2 |= UCA0RXIE;

__bis_sr_register(LPM0_bits + GIE);//输入LPM0,启用中断
}

/*回显RXed字符,确认TX缓冲区首先准备就绪*/
#pragma vector=USCIAB0RX_vector
__interrupt void USCI0RX_ISR(void){

当(!(IFG2&UCA0TXIFG);// USI_A0 TX缓冲器就绪?
UCA0TXBUF = UCA0RXBUF;// tx - amp;gt; RXed字符
} 

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

    您好,

    MSP430G2553和MSP430FR2311中的时钟模块之间存在显著差异,因此寄存器和如何正确设置将有所不同。 MSP430G2553使用TI所称的基本时钟模块+,而MSP430FR2311则使用时钟系统(CS)。 您可以在相应的设备用户指南中找到有关这两个系统的信息。 另外,请确保阅读 《设备用户指南 》,了解有关如何正确设置寄存器的信息,并查看设备数据表,了解更多特定于设备的信息,例如建议的操作条件。  

    为了使UART通信正常工作并正确设置时钟,我建议您看一看 MSP430Ware。 该软件包提供了大量MSP430器件的示例,包括时钟示例和UART示例。 请看一下,如果您有任何其他问题,请告诉我。  

    此致,  
    Caleb Overbay