我使用的是MSP430F5529的红色开发板。外部晶振是4MHz。主要是调试串口为115200的波特率。 选择的是SMCLK。
在时钟配置时,SMCLK选择的是XT2.没有分频。 XT1是32768的外部晶振。
如果不把下面代码中关于XT1起振的代码注释掉。这样配置已经用串口测试没有问题。
但是我将XT1起振的代码注释掉。串口就出现问题了,但是串口和XT1又没有关系。而且我也没有用到DCO。
XT2外部晶振应该是独立的才对。一直不知道问题在哪?所以请教一下论坛里的朋友。
void Clock_init(void)
{
// P5SEL |=BIT4+BIT5; //XT1晶振引脚
P5SEL |=BIT2+BIT3; //XT2晶振引脚
SetVCore(0); //共有1.4V(0-12MHZ),1.6V(0-16MHZ),1.8V(0-20MHZ)和1.9V(0-25MHZ)四个级别.
// LFXT_Start(XT1DRIVE_0); //XT1低频模式
XT2_Start(XT2DRIVE_0); //外部晶振选择4M
SELECT_MCLK_SMCLK(SELM__XT2CLK + SELS__XT2CLK);//先选择XT2,无效后转DCO
}
void AppUart_init_1(void)
{
P4SEL |= BIT5 + BIT4; // P4.4,5 = USCI_A1 TXD/RXD
UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
UCA1CTL0 = 0x00; //默认即全为0
UCA1CTL1 = UCSSEL__SMCLK + UCSWRST; // Use SMCLK, keep RESET
UCA1BR0 = 34; // 4MHz/115200=34
UCA1BR1 = 0x00; //
UCA1MCTL = UCBRS_6 + UCBRF_0;
UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
UCA1IE |= UCRXIE; // 使能接收中断
}
|