?? main.c
字號:
#include<msp430x14x.h>
unsigned char RX[8];
int j=0;
main()
{
int i;
WDTCTL=WDTPW+WDTHOLD; //停止看門狗定時器
BCSCTL1 = 0X00; //將寄存器的內容清零
//XT2震蕩器開啟
//LFTX1工作在低頻模式
//ACLK的分頻因子為1
do
{
IFG1 &= ~OFIFG; // 清除OSCFault標志
for (i = 0x20; i > 0; i--);
}
while ((IFG1 & OFIFG) == OFIFG); // 如果OSCFault =1
BCSCTL2 = 0X00; //將寄存器的內容清零
BCSCTL2 += SELM1; //MCLK的時鐘源為TX2CLK,分頻因子為1(TX2CLK為8M)
BCSCTL2 += SELS; //SMCLK的時鐘源為TX2CLK,分頻因子為1
U0CTL=0X00; //將寄存器內容清零
U0CTL+=CHAR; //數據位為8bit
U0TCTL=0X00; //將寄存器內容清零
U0TCTL+=SSEL1; //波特率發生器選擇SMCLK
UBR0_0=0X45; //波特率為
UBR1_0=0X00;
UMCTL_0=0X49;
ME1|=UTXE0+URXE0; //使能UART0的TXD和RXD
IE1|=URXIE0; //使能UART0的RX中斷
UCTL0&=~SWRST;
P3SEL|=BIT4; //設置P3.4為UART0的TXD
P3SEL|=BIT5; //設置P3.5為UART0的RXD
P5SEL=0XFF;
P5DIR=0XFF; //P3.4為輸出管腳
_EINT();
while(1);
}
#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX (void)
{
RX[j]=RXBUF0;
j++;
if(j==7)
{
IFG1&=~(URXIFG0);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -