搜档网
当前位置:搜档网 › MSP430 URRT串口通信

MSP430 URRT串口通信

#include msp430x16x.h
#include 1602msp.h
#include in430.h
#define TXD0 BIT4
#define RXD0 BIT5

void InitSys(void)
{
unsigned int iq0;
_DINT();
BCSCTL1 &=~XT2OFF;
do
{
IFG1 &= ~OFIFG; 清除振荡器失效标志
for (iq0 = 0xFF; iq0 0; iq0--); 延时,等待XT2起振
}
while ((IFG1 & OFIFG) != 0); 判断XT2是否起振
BCSCTL2 =SELM1+SELS+DIVS_3; MCLK,SMCLK时钟为XT2 8分频
}

void main()
{
InitSys();
P3DIR =TXD0;
P3SEL =TXD0+RXD0;
U0CTL=SWRST; 复位状态
U0CTL&=~SYNC; UART模式
U0CTL=PENA+CHAR; 校验、停止、数据使能
U0TCTL=SSEL0; 时钟源SMLK 1MHz
U0BR1=0;
U0BR0=0X03;
U0MCTL=0X4A; 波特率为9600
ME1=UTXE0+URXE0; 使能接收发送
U0CTL&=~SWRST; 工作状态

IE1=URXIE0; 接收中断使能
_EINT(); 开总中断
while(1);

}

#pragma vector = UART0RX_VECTOR
__interrupt void RX_ISR(void)
{
IFG1&=~URXIFG0;
while (!(IFG1&URXIFG0));
U0TXBUF=U0RXBUF; 把接收到的数据返回给串口调试助手
while((IFG1&UTXIFG0)==0);
IFG1&=~UTXIFG0;
}

相关主题