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.

MSP430F2418: 关于USCIA0和USCIA1同时作为串口模式的问题

Part Number: MSP430F2418

void main(void)
{
	WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer
	Uart0_Init();
	Uart1_Init();


	__bis_SR_register(GIE);


	while(1)
	{

	}
	
}

同时初始化USCIA0和USCIA1,先初始化的一个将会不能使用,这是怎么回事?

初始化代码如下,USCIA0:

void Uart0_Init(void)
{
    BCSCTL1 &= ~XT2OFF;
    BCSCTL2 |= SELM_2 + SELS;

    P3SEL = 0x30;                             // P3.4,5 = USCI_A0 TXD/RXD
    UCA0CTL1 |= UCSSEL_2;                     // SMCLK
    UCA0BR0 = 0x45;                              // 8MHz 115200
    UCA0BR1 = 0x00;                              // 8MHz 115200
    UCA0MCTL = 4;                             // Modulation UCBRSx = 4
    UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
    IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt
}

USCIA1:

void Uart1_Init(void)
{

    BCSCTL1 &= ~XT2OFF;
    BCSCTL2 |= SELM_2 + SELS;

    P3SEL = 0xC0;                             // P3.6,7 = USCI_A1 TXD/RXD
    UCA1CTL1 |= UCSSEL_2;                     // CLK = SMCLK
    UCA1BR0 = 0x45;                           // 8MHz 115200
    UCA1BR1 = 0x00;                           // 8MHz 115200
    UCA1MCTL = 4;                             // Modulation UCBRSx = 4
    UCA1CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
    UC1IE |= UCA1RXIE;                        // Enable USCI_A1 RX interrupt
}

时钟源选择XT2,8M时钟,两个USCI模块的时钟源都为SMCLK,1分频。