430串口问题求指教

2019-03-24 13:40发布

430
串口中断。如果只接受,不发送。而且要对所接受的数据进行分析,
是一串数据怎么办,下面这对吗,求指教谢谢。
void Uart_Init(void)
{
        P3SEL |= 0x30;                            // 选择P3.4和P3.5做UART通信端口
        
        UCTL0 |= SWRST;                         //开始设置串口   
       ME1 |= URXE0;                             // 使能USART0的发送和接受
      UCTL0 |= CHAR;                            // 选择8位字                    
      UTCTL0 |= SSEL0;                          //选择模块时钟源 ; // UCLK = ACLK
      UBR00 = 0x06;                             // 波特率9600
      UBR10 = 0x00;                             //
      UMCTL0 = 0xfb;                            // Modulation
       UCTL0 &= ~SWRST;                    //设置串口 完毕
       IE1 |= URXIE0;
}
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
                  
              
     uchar ch;
            _DINT();
      IE1 &= ~URXIE0; //ES = 0;_DINT();
if((IFG1 & URXIFG0))

        {
               ch = RXBUF0;     
  if ((ch == '$') && (gps_flag == 0))  //如果收到字符'$',便开始接收           
  {
   rev_start = 1;
   rev_stop  = 0;
  }

  if (rev_start == 1)  //标志位为1,开始接收            
  {
   rev_buf[num++] =ch;  //字符存到数组中           
   if (ch == ' ')     //如果接收到换行           
   {
    rev_buf[num] = '';
    rev_start = 0;
    rev_stop  = 1;
    gps_flag = 1;
    num = 0;
   }
  }
        }

IFG1&=~URXIFG0;
            IE1 |= URXIE0;            //    _EINT();
             _EINT();
}
上面中断的接收直接用ch可以吗,还是要用数组求改一下,就是现在中断进不去,不知为啥
哪位大神给看看

[ 本帖最后由 cuanli007 于 2012-8-13 11:16 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
宇文玉骢
2019-03-24 18:06
< UCTL0 |= ~SWRST;                         //开始设置串口   
第二行 是不是有问题来着。。。

一周热门 更多>

相关问题

    相关文章