+ -
当前位置:首页 → 问答吧 → RS485串口通讯

RS485串口通讯

时间:2008-05-29

来源:互联网

PC端安装485卡,设备通过485和PC通信,请教如何写通信系统?能否给个简单的例子?万分感谢了!

作者: liuhongxia1978   发布时间: 2008-05-29

跟串口通信一样的。在串口上加个485转换器好了。
可以用现成的spcomm控件等。

作者: Corn1   发布时间: 2008-05-29

楼上的兄弟:我说的是在PC上已经安装了485卡

作者: liuhongxia1978   发布时间: 2008-05-29

没用过485卡,估计和串口编程一样吧

作者: luxuewei5214   发布时间: 2008-05-29

真的没有人搞过吗?我们老大说要发送请求贞,解析协议等等,我没有搞过所以不明白!搞过的人给指点指点!万分感谢!

作者: liuhongxia1978   发布时间: 2008-05-29

你们老大说的是通讯协议,不是通讯接口形式。RS485是一种通讯接口。

作者: jadeluo   发布时间: 2008-05-30

楼上的兄弟:那直接用RS485通讯接口和PC通信的系统如何开发?和RS232通信在开发方面有什么区别?

作者: liuhongxia1978   发布时间: 2008-05-30

对于软件来说,485通信和串口通信是一回事,都是操作串口。这两者只是硬件上的区别而已,跟软件没关系的。所谓的485通信,只是在串口上加了一个转换器而已,就这么简单。
我以前做过的。

作者: Corn1   发布时间: 2008-05-30

引用 7 楼 Corn1 的回复:
对于软件来说,485通信和串口通信是一回事,都是操作串口。这两者只是硬件上的区别而已,跟软件没关系的。所谓的485通信,只是在串口上加了一个转换器而已,就这么简单。
我以前做过的。

作者: ljz9425   发布时间: 2008-05-30

楼主楼主,你是不是遇见485对485通信的问题啊,
我原来Delphi7下的232的程序,用Spcomm控件实现,且用转接口转485后没有问题;
问题是现在在PC104(内安装装嵌入式windowsXP系统)上直接就是485口,单片机上也是,如何解决呢?
反正以前的程序似乎不能用,你若解决,告诉我解决方案啊,跪求,亟待!!!!
多谢多谢,发我信箱:[email protected]

作者: KOOkO   发布时间: 2008-06-03

不管是楼主,各位大侠看见了也望回个音啊,小弟感谢了!

作者: KOOkO   发布时间: 2008-06-03

pci的扩展卡吗?
如果是的话买卡时会提供驱动吧,然后你从设备管理器里面看识别成什么设备.多半还是识别为一个串口,那你就用你操作232的方法去操作这个串口就好了,剩下的是厂商提供的驱动的事

作者: skylkj   发布时间: 2008-06-04

其实就是458通讯,用SPCOMM可以完成还简单,如果PC TO PC通讯 只要别忘 跳线就是了,有的已经跳好 了

作者: xiaobaoqi   发布时间: 2008-06-04

如果线路上只有两个设备,软件设计上跟232一致,否则在传输的数据包中夹带发送、接收端的站点编号。

作者: 快乐老猫   发布时间: 2008-06-09

RS485与RS232的区别其实并不大,转输方式是一样的。

区别在于:RS485是差分(差分信号)传输,RS232是非差分(同分信号)传输的。

因此,RS485传输信号扰干扰能力强于RS232,故传输距离较RS232远。

就编程上来看,与RS232并没有区别。对于计算机来说如果在232串口上进行485通讯的话,
要加入一个RS232/RS485转换模块才行。




作者: dinglinger   发布时间: 2008-06-17

一般的485卡,实际上是一个RS-232接口卡,不过该RS-232接口卡,直接带有RS-232电平转RS-485电平功能。
PC机主板上,一般有Com1和Com2,插上485卡后,就会有Com3、Com4……。

所以编程完全和Com1\Com2一样。

作者: sy_100000   发布时间: 2008-06-27

N久之前用Spcomm写的一小段代码,望对你能有所帮助。

procedure TForm1.Button1Click(Sender: TObject);
begin
  self.Comm1.CommName:=edit1.Text;
  self.Comm1.BaudRate:=strtoint(edit2.Text);
  self.Comm1.ByteSize:=Tbytesize(3);
  self.Comm1.StopBits:=Tstopbits(0);
  self.Comm1.Parity:=tparity(0);
  try
  self.Comm1.StartComm;
  except
  raise exception.Create('打开串口失败!');
  end;

  self.StatusBar1.Panels[0].Text:=edit1.text+'已打开';
  self.StatusBar1.Refresh;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  self.Comm1.StopComm;
  self.StatusBar1.Panels[0].Text:=edit1.text+'已关闭';
  self.StatusBar1.Refresh;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  str:Pchar;
  count:integer;
begin
  str:=pchar(edit3.Text);
  count:=length(str);
  if self.Comm1.WriteCommData(str,count) then
  self.Memo1.Lines.Add('已发送'+inttostr(count)+'个字符')
  else
  raise exception.Create('发送错误');
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  close;
end;

procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
  BufferLength: Word);
var
  str:string;
  strrecv:string;
begin
  setlength(strrecv,bufferlength);
  move(buffer^,Pchar(strrecv)^,bufferLength);
  self.Memo2.Lines.Add('已收到:'+inttostr(bufferlength)+'字节的数据');
  self.Memo2.Lines.Add(strrecv);
end;

作者: kampan   发布时间: 2008-06-27

学习了.485通讯一般都有协议,按协议组帧 发给串口就可以了。

作者: huochai555   发布时间: 2011-08-31

热门下载

更多