#include <msp430f5529.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 關閉看門規
P4SEL = BIT4+BIT5; // P3.3和P3.4選擇UART通信功能
UCA1CTL1 |= UCSWRST; // 復位寄存器設置
UCA1CTL1 |= UCSSEL_2; // 波特率發生器參考時鐘設置為SMCLK,SMCLK=1048576Hz
UCA1BR0 = 6; // 波特率設置為9600bps
UCA1BR1 = 0;
UCA1MCTL = UCBRS_0 + UCBRF_13 + UCOS16; // 調制器設置,選擇過采樣模式
UCA1CTL1 &= ~UCSWRST; // 完成USCI_A0初始化配置
UCA1IE |= UCRXIE; // 使能USCI_A0接收中斷
__bis_SR_register(LPM0_bits + GIE); // 進入LPM0,并使能全局中斷
}
// USCI_A1中斷服務程序
#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{
switch(__even_in_range(UCA1IV,4))
{
case 0:break; // 中斷向量0—無中斷
case 2: // 中斷向量2—接收中斷
while (!(UCA1IFG&UCTXIFG));// USCI_A0 是否發送完成
UCA1TXBUF = UCA1RXBUF; // 將接收緩沖寄存器的字符傳送給發送緩沖寄存器,發送給PC,在串口調試助手中回顯。
UCA1TXBUF =(char)((float)UCA1RXBUF+1);
break;
case 4:break; // 中斷向量4—發送中斷
default: break;
}
}
|