锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

MSP430F5438 Unified System Clock

时间:2024-04-25 18:37:09

#include "msp430x54x.h"

void UCS_Init(void)
{ P5SEL |= 0x0C; // Port select XT2
UCSCTL6 &= ~ XT2OFF; // Set XT2 On
P7SEL |= 0x03; // 端口选择外部低频晶振XT1
UCSCTL6 &=~XT1OFF; // 使能外部晶振
UCSCTL6 |= XCAP_3; // 设置内部负载电容
UCSCTL3 |= SELREF_2; // Oref = REFO
UCSCTL4 |= SELA_0; // ACLK = XT1
__bis_SR_register(SCG0); // 关闭FLL控制回路
UCSCTL0 =DCO0 + DCO1 + DCO2 + DCO3 + DCO4; // 设置DCOx, MODx
UCSC = DCORSEL_5; // 设置DCO振荡范围
UCSCTL2 = FLLD__1 + 0X2A7; // Fdco = ( FLL_FACTOR + 1)×FLLRef = (649 + 1) * 32768 = 21.2992MHz
__bic_SR_register(SCG0); // 打开FLL控制回路
__delay_cycles(1024000);
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除 XT2,XT1,DCO 错误标志
SFRIFG1 &= ~OFIFG;
}while(SFRIFG1&OFIFG); // 检测错误标志
UCSCTL4 |= __XT2CLK + SELM__XT2CLK + SELA__DCOCLKDIV ; // MCLK=LK=晶振12Mhz DCO=21.2922Mhz
UCSCTL5 |= DIVS__1; // ACLK=32.768 ,SMCLK=XT2/1,MCLK=XT2
}


void main(void)
{unsigned char a,b,c;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
UCS_Init();
PEL = 0x30; // P3.4,5 = USCI_A0 TXD/RXD
UCA0CTL1 |= UCSWRST; // **Put state machine in reset**
UCA0CTL1 |= UCSSEL__ACLK; // SMCLK
UCA0BR0 = 184; // 12MHz 115200 (see User's Guide)
UCA0BR1 = 0; // 12MHz 115200
UCA0MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
UCA0IE |= UCRXIE; // Enable USCI_A0 RX interrupt
P1D=0xff;
P1OUT=0x55;
__bis_SR_register(GIE);
//__bis_SR_register(LPM3); // Enter LPM0, interrupts enabled
//__no_operation(); // For debugger
while(1)
{for(a=0;a<250;a++)
for(b=0;b<25;b++)
for(c=0;c<5;c++)
{;}
P1OUT=~P1OUT;
// UCA0TXBUF=P1OUT;

}
}

// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCI_A0_
__interrupt void USCI_A0_ISR(void)
{
switch(__even_in_range(UCA0IV,4))
{
case 0:break; // Vector 0 - no interrupt
case 2: // Vector 2 - RXIFG
while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX buffer ready?
UCA0TXBUF = UCA0RXBUF; // TX -> RXed character
break;
case 4:break; // Vector 4 - TXIFG
default: break;
}
}


-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章