这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 急呀 各位大侠 PC与多单片机通信程序

共2条 1/1 1 跳转至

急呀 各位大侠 PC与多单片机通信程序

菜鸟
2011-10-18 11:15:24     打赏
PC与多单片机通信程序,我自己定的协议 ,现在我的程序测试时 多个从机都返回数据!下面是我的程序,麻烦各位大侠看看,谢谢啦!
/**************************串口中断函数**************************/
/*函数原型:void serial_int() interrupt 4
/*函数功能:发送与接收数据
/******************************************************************/
void serial_int() interrupt 4
{ unsigned char  m;
if(RI) //STX..ETX,SUM  Rbuf里没有字头
{
  RI=0;
  m=SBUF;
  if(last==STX && m==MyAddr)
  { Rptr=0;
  }  
  if(Rptr<BufMax)
  { Rbuf[Rptr]=m; Rptr++;}//接收了校验位CRC
  if(last==ETX)
   { RecvOk=1;   }
  last=m;
}
else
{
  TI=0;
  if(Tnum>0)
  {
   SBUF=Tbuf[Tptr];
   if(++Tptr>=BufMax)
    Tptr=0;
   Tnum--;
  }
}
}
主程序的部分:
if(RecvOk==1)
    {
   RecvOk=0;
   if(Rbuf[0]==MyAddr)
   { CheckSUM();
    if(sumOK==1)
    {
     ErrorCode=0;
     shuju_chuli();
    }
    else if(sumOK==0)
    { ErrorCode=1;   
     Tbuf[0]=STX;
     Tbuf[1]=Rbuf[0];
     Tbuf[2]=ErrorCode;
     Tbuf[3]=ETX;
     sum=0;
     for(a=0;a<4;a++)
      sum+=Tbuf[a];
     Tbuf[4]=sum;
     Tbuf[5]=sum>>8;
     Tptr=0;Tnum=6;
     TI=1;
    }
    }
      else
    break;
       }



关键词: 急呀     各位     大侠     单片机     通信     程序    

菜鸟
2011-10-18 16:35:45     打赏
2楼
多个单片机与PC机通讯是可以,但是这种方法个人觉得不稳定、不够完善

如果需要远距离传输的话,可以使用RS485

RS-485最大的通信距离约为1219M,最大传输速率为10Mb/S,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。

因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。 因为RS485接口组成的半双工网络,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。 RS485接口连接器采用DB-9的9芯插头座,与智能终端RS485接口采用DB-9(孔),与键盘连接的键盘接口RS485采用DB-9(针)。

以上就是RS485的有点,它的应用也多
希望我的回答能带给楼主一点帮助。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]