打印

430 uart 接收问题

[复制链接]
902|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
justbybing|  楼主 | 2013-12-30 22:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
justbybing|  楼主 | 2013-12-30 22:58 | 只看该作者
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
{   
  DE;
    uint i;
      i=0;
   while(i<8)
  {
    TXBUF1=sendbuf;
   while(!(IFG2 & UTXIFG1));
    IFG2 &= ~UTXIFG1;
   i++;
  }
  RE;
}
void Set_UART1(void)
{
    P3SEL |= 0xC0;                            //将P3.6,P3.7选做UART1的通信端口
    ME2 |= UTXE1 + URXE1;                     //使能USART1的TXD和RXD
    UCTL1 |= CHAR;                            //选择8-bit字符
    UTCTL1 |= SSEL0;                          //驱动时钟选择ACLK
    UBR01 = 0x03;                             //波特率9600
    UBR11 = 0x00;
    UMCTL1 = 0x6B;                            //调整
    UCTL1 &= ~SWRST;                          //初始化UART状态机
    IE2 |= URXIE1;
}
/*********异步接受中断***/
#pragma vector=UART1RX_VECTOR
__interrupt void UART1_RX (void)
{   

  uint j=0;
  if (URXIFG1)  
{
    while(j<9)
     {
    resvbuf[j]=RXBUF1;  
       IFG2 &=~ URXIFG1 ;
     j++;
     }
}

}

使用特权

评论回复
板凳
51xlf| | 2013-12-30 23:59 | 只看该作者
resvbuf[j]=RXBUF1;  
       IFG2 &=~ URXIFG1 ;
     j++;


这里得等待接收标志置位

使用特权

评论回复
地板
niuyaliang| | 2013-12-31 11:59 | 只看该作者
同意楼上的

使用特权

评论回复
5
shenpingbing| | 2013-12-31 14:43 | 只看该作者
51xlf 发表于 2013-12-30 23:59
resvbuf[j]=RXBUF1;  
       IFG2 &=~ URXIFG1 ;
     j++;

一语中是

使用特权

评论回复
6
51xlf| | 2014-1-3 23:03 | 只看该作者
shenpingbing 发表于 2013-12-31 14:43
一语中是

:handshake

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

82

主题

1106

帖子

1

粉丝