在线情况
1
  • 头像
  • 级别
    • 积分26
    • 经验920
    • 文章44
    • 注册2007-08-13
    串口调试精灵的校验方式,选择 Mark方式就可以了.
    Red-Swallow
    在线情况
    2
    • 头像
    • 级别
      • 积分26
      • 经验920
      • 文章44
      • 注册2007-08-13
      我一直使用这个程序,采用地址位多机协议,很好用,一点问题没有.


      void comm_init(void)///串口初始化
      {
         UCTL0&=~SWRST;
         UTCTL0&=~TXWAKE;
         UCTL0|=(CHAR+MM+SPB);
         IFG1&=(~(URXIFG0+UTXIFG0));
         ME1|=(UTXE0+URXE0);
         UTCTL0|=(SSEL0+SSEL1);
         UBR00=0x05;//8M/2400
         UBR10=0x0d;
         UMCTL0=0xa4;
         IE1|=URXIE0;
         URCTL0=URXWIE;//只有收到地址字符时才永许中断
      }


      #pragma vector=USART0RX_VECTOR
      __interrupt void USART0RX(void)
      {//接收中断
        unsigned char date,date1;
        _EINT();
        if((URCTL0&0x21)==0x1)
        {//出现错误且该错误非溢出引起
          URCTL0=URXWIE;
         .......;     
          date=RXBUF0;
        }
        else
        {
          date=RXBUF0;
          URCTL0&=~RXERR;
          if(URCTL0&URXWIE)//接受到本机地址否
          {
            if(date==addr)
            {
              URCTL0&=~URXWIE;
              .......
            }
            .....    
          }
          else//接受命令、数据
          {
            date1=date;
            ...
            }
            else
            {//接收数据
            
                }
              }
            }
          }
        }
      }
      Red-Swallow
      Powered by LeadBBS 9.2 .
      Page created in 0.1875 seconds with 7 queries.