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.

求教 MSP430F5438 外接16MHz晶体 19200波特 不通,<附时钟初始化和波特率初始化代码>



void Init_CLK(void)

 {  

P7SEL|= (XT1IN+XT1OUT); // 端口功能选择外部晶振XT2=16MHz  

UCSCTL6 &= ~XT1OFF ; // XT1振荡器使能

UCSCTL6 |= XT1DRIVE0 + (~XT1DRIVE1)+XTS ; // XT1 最大驱动模式 16~24MHz  ,HF mode  

UCSCTL3 |= SELREF_0; //FLLREFCLK =XT1CLK  .且FLLREFCLK不分频  

UCSCTL4 |= (SELA__XT1CLK+SELM__XT1CLK+SELS__XT1CLK); // ACLK=XT1,SMCLK=XT1,MCLK=XT1  

do   

{     

  UCSCTL7 &= ~XT1HFOFFG;                         // 清除 XT1 错误标志      //delay(5);    

}while (UCSCTL7&XT1HFOFFG);                      // 检测 XT1 错误标志                                  

}

**********************************************************************************************

void Init_UART(void)

{   

   P5SEL |= BIT6 + BIT7; // 选择串口    

   P5DIR |= BIT6; // TXD选择发送    

   P5DIR &= ~BIT7; // RXD选择接收        

   UCA1CTL1 |= UCSWRST; // 复位串口功能    

   UCA1CTL0 |= UCMODE0; // 选择串口功能,UART 模式    

   UCA1CTL0 &= ~UC7BIT; // 8位数据模式        

   UCA1CTL1 |= UCSSEL__ACLK; // 时钟源选择 16MHz    

   UCA1BR0 = 0x21;

   UCA1BR1 = 0x08;    

   UCA1MCTL = 0x06; // 波特率调整因子 UCOS16=1 过采样模式 ;UCOS16=0,LF mode    

   UCA1CTL1 &= ~UCSWRST; // 使能串口功能  

   //  UCA1IE |= UCRXIE; // 使能接收中断   

   // UCA1IE |=UCTXIE;    

   _BIS_SR(GIE);

}

*******************************************************************************************************************

红色标出的代码,我不太清楚,如何配置成119200,也参考手册上的数值配置过,UCBRx=833;(UCA1BR0=0x21;UCA1BR1=0x08),UCBRSx=2(UCA1MCTL=0x06)但是不通。