#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;
}
}
|