关于UART的地址位多机通讯

0楼
tianxy指的“用PC端串口的校验位来代替MSP430多机模式时数据后面地址位”,这个方法好似很棒样子,请爱好者尽快试试程报实验结果详情。期待中...!
1楼
我一直使用这个程序,采用地址位多机协议,很好用,一点问题没有.


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
      {//接收数据
      
          }
        }
      }
    }
  }
}
2楼
哥们,能否再将采用地址位多机协议的演示程序重新加一个贴子贴出来,然后再加些注解和原理呢?
这样的话我可以整理到学习专区中!
3楼
感谢tinaxy朋友的指点!我已经按照您所说的方法写了一个小程序,用新下载的串口精灵,把校验方式设置为MARK,进行了粗略的调试,很成功!已经弄懂了地址位多机方式的工作原理。
再次感谢这位热心的朋友!给我们这些初学者指点迷津,谢了!!

电脑版 Page created in 0.1572 seconds width 3 queries.